【问题标题】:Entity Framework 6 - Database First - String Length Attribute missing实体框架 6 - 数据库优先 - 缺少字符串长度属性
【发布时间】:2021-11-13 13:11:13
【问题描述】:

我首先使用 EF6 数据库来创建我的 EF 6 DB 上下文。创建的 POCO 缺少属性属性,例如“StringLength”或“Required”。在为我创建这些项目之前,我一直在从事项目,并认为这是基本功能。在哪里可以找到有关如何配置此行为的文档?

从一个新的 Winform 应用程序中,我向我的项目中添加了一个新的 ADO.Net 实体数据模型,并按照向导“从数据库进行 EF 设计”。

环境

  • 新的 .Net Framework 4.72 Winform 应用程序
  • EF 6
  • C#

【问题讨论】:

  • 这意味着您创建了一个老式的 EDMX。使用“数据库中的代码优先”。
  • 你是说它在创建 POCO 时使用了 EF 5?我认为这是不可能的,因为该项目仅引用 EF6。
  • 不,我没有这么说。 EDMX 也可以在 EF6 中使用,只是老式风格。
  • 如何生成新样式的 EDMX?
  • 你不懂。 EDMX 是老式的。试试我提到的另一个选项。

标签: c# entity-framework entity-framework-6


【解决方案1】:

我知道发生了什么。默认情况下Scaffold-DBContext's parameter DataAnnotations 默认使用Fluent API。 Fluent API 使用上下文的 OnModelCreating 方法中的函数链接来配置属性。 DataAnnotations 参数是一个开关,因此只需指定该参数即可将引擎更改为使用 Data Annotations。

这很重要,因为我也在 E​​F 之外使用 EF 模型。将它们与 ASP.net 一起使用有很大的好处,因为它将在请求期间使用注释来验证模型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多