我有一个 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 新手,想了解它的用途。
谢谢-
最佳答案
使用 Code First 时,您的模型是使用一组约定从您的类计算得出的。默认的代码优先约定确定诸如哪个属性成为实体的主键、实体映射到的表的名称以及小数列默认具有的精度和小数位数等内容。
有时这些默认约定并不适合您的模型,您必须通过使用数据注释或 Fluent API 配置许多单独的实体来解决它们。自定义代码优先约定允许您定义自己的约定,为您的模型提供配置默认值。
在此处阅读更多信息...
https://msdn.microsoft.com/en-us/data/jj819164.aspx
文章也不错...
http://www.codeproject.com/Articles/165720/Using-the-Code-First-Model-Configuration-Classes
关于c# - 什么是 modelBuilder.entity(Of x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28912633/