我有一个EF 6项目的上下文类,它对每个表中的每一列都有以下modelBuilder属性:
Protected Overrides Sub OnModelCreating(ByVal modelBuilder As DbModelBuilder)
modelBuilder.Entity(Of Product)() _
.Property(Function(e) e.Name) _
.IsUnicode(False)
modelBuilder.Entity(Of Product)() _
.Property(Function(e) e.Description) _
.IsUnicode(False)
End Sub
这是为了什么?在数据库第一或甚至代码第一个例子我没有看到这个。此上下文类是使用'代码第一个现有数据库'创建的。我是EF的新手,想了解它的用途。
谢谢 -
答案 0 :(得分:0)
使用Code First时,您的模型是使用一组约定从您的类计算的。默认的Code First Conventions确定哪些属性成为实体的主键,实体映射到的表的名称,以及默认情况下十进制列具有的精度和比例。
有时,这些默认约定对于您的模型并不理想,您必须通过使用数据注释或Fluent API配置许多单个实体来解决这些问题。自定义代码优先约定允许您定义自己的约定,为您的模型提供配置默认值。在本演练中,我们将探讨不同类型的自定义约定以及如何创建它们。
在这里阅读更多内容......
https://msdn.microsoft.com/en-us/data/jj819164.aspx
不错的文章......
http://www.codeproject.com/Articles/165720/Using-the-Code-First-Model-Configuration-Classes