如何使EF Code First Data Annotations与MVVM一起使用?

时间:2015-05-19 20:58:51

标签: c# entity-framework mvvm

这可能是一个令人难以置信的愚蠢问题。

在MVVM教程中,模型看起来像这样:

c.SSHEngineSetLauncher.engine_cmd = ['/home/rein/git/rebound/venv/bin/python', '-m', 'IPython.parallel.engine']

在Entity Framework Tutorials中,您可以得到以下内容:

public class Case : ObservableObject
{
        private int caseID;
        public int CaseID
        {
            get { return _caseID; }
            set
            {
                if (value != _caseID)
                {
                    _caseID = value;
                    OnPropertyChanged("CaseID");
                }
            }
        }

现在这个愚蠢的问题:如果您尝试将它们放在一起,那么数据注释会去哪里?

喜欢这样吗?

public class Case
{               
    [Data Annotation]        
    public int CaseId { get; set; }
}

或者你不应该把它们放在一起吗?如果没有,你会怎么做?

(如果重要的话,我现在更感兴趣的是使用Code First Data Annotations来定义1:0-1 FK关系,而不是现在的数据验证。)

1 个答案:

答案 0 :(得分:2)

是的,即使您正在使用自定义getter / setter,您仍然会将DataAnnotation放在属性上,因为EF通过属性与您的实体连接。

字段通常是私有的。