c# - 什么是 modelBuilder.entity(Of x)

标签 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 新手,想了解它的用途。

谢谢-

最佳答案

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

相关文章:

c# - 如何在 C# 中将 if 语句添加到 LINQ 查询?

Freebase RDF 转储的 C# 解析仅产生 1150 万个 N-Triples 而不是 19 亿个

vb.net - SQLITE 仅从文本字段中选择数值

vb.net - 如何使我的 VB.NET 表单应用程序启动方法成为 Program.vb 中的 Sub Main()?

visual-studio-2010 - Entity Framework 5 - 列名无效 - 逆向工程师代码优先

c# - 代码首先导致所需的关系是可选的?

c# - 将最小起订量与 Linq Any() 结合使用

c# - 使用父属性实例化继承对象类

asp.net - Web 浏览器进入信息亭模式

c# - 使用 *sql* 子查询的 Entity Framework 查询