Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework EF5代码优先-数据注释与Fluent API_Entity Framework_Data Annotations_Fluent - Fatal编程技术网

Entity framework EF5代码优先-数据注释与Fluent API

Entity framework EF5代码优先-数据注释与Fluent API,entity-framework,data-annotations,fluent,Entity Framework,Data Annotations,Fluent,我是Entity Framework的新手,即将开始一个新的ASP.NET MVC项目,首先使用EF5代码 据我所知,您可以对域模型对象中的属性使用数据注释,也可以使用Fluent API来定义属性数据类型(创建对象时在DB中)、大小、它们是否可为空等等 是否有一个通用的推荐方法来使用 我看不出在使用数据注释时,如何在DB中创建该属性时指定该属性的数据类型和大小,而使用Fluent API,您似乎可以执行以下操作: Property(g => g.ModelName).HasColumnT

我是Entity Framework的新手,即将开始一个新的ASP.NET MVC项目,首先使用EF5代码

据我所知,您可以对域模型对象中的属性使用数据注释,也可以使用Fluent API来定义属性数据类型(创建对象时在DB中)、大小、它们是否可为空等等

是否有一个通用的推荐方法来使用

我看不出在使用数据注释时,如何在DB中创建该属性时指定该属性的数据类型和大小,而使用Fluent API,您似乎可以执行以下操作:

Property(g => g.ModelName).HasColumnType("varchar");
Property(g => g.ModelName).HasMaxLength(100);
Property(g => g.ModelName).IsRequired();
例如,在使用数据注释时,默认情况下,所有my string属性都使用nvarchar(MAX)


有没有一种方法可以使用数据注释来完成上述操作?它是否提供了与Fluent API相同程度的“调整”,或者我是否应该将域模型单独放置,并将所有这些“调整”分离出来,以便为每个域模型对象分离Fluent API类?

我建议使用Fluent API。数据注释是一个子集,例如不包括关系的级联删除


也可以考虑使用持久性逻辑(例如数据库列名称不合适)来污染模型。

你知道fluent API now(2013年12月)与MVC验证的工作方式是否类似于数据注释?很难跟上不断变化的功能和API。。。