什么是modelBuilder.entity(Of x)

时间:2015-03-07 07:46:57

标签: c# vb.net ef-code-first entity-framework-6

我有一个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的新手,想了解它的用途。

谢谢 -

1 个答案:

答案 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