什么是modelBuilder.entity(Of x)

Posted

技术标签:

【中文标题】什么是modelBuilder.entity(Of x)【英文标题】:What is modelBuilder.entity(Of x) 【发布时间】:2015-05-08 21:00:36 【问题描述】:

我有一个 EF 6 项目的上下文类,每个表中的每一列都有以下模型构建器属性:

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】:

使用 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

【讨论】:

感谢您的参考!

以上是关于什么是modelBuilder.entity(Of x)的主要内容,如果未能解决你的问题,请参考以下文章

FluentAPI详细用法

.WithMany()和.WithOptional()之间的区别?

EF6 DbModelBuilder

EF 级联删除

EF Code First - 如何设置身份种子?

9. EF Core数据库索引与备用键约束