【问题标题】:Entity Framework ignores Table Annotation实体框架忽略表注释
【发布时间】:2014-05-29 05:19:53
【问题描述】:

我在数据库中有一些无法更改的现有表(订单、客户),并且我正在创建新表作为我希望复数化的项目的一部分(例如优惠券)。我正在使用带有 Code First 的 EF 6.1。

由于某种原因,EF 在生成内部 SQL 时,会忽略 [Table()] 注解。换句话说,如果我让 EF 将名称复数,所有 SQL 语句都有SELECT ... FROM Orders。如果我删除复数形式(modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();),那么我会得到SELECT ... FROM Coupon。我 [Table("Order")][Table("Coupons")] 但似乎没有任何效果!

我错过了什么?

【问题讨论】:

    标签: c# asp.net sql-server entity-framework entity-framework-6


    【解决方案1】:

    这适用于这里:

      modelBuilder.Entity<PocoName>().ToTable("SomeOtherString") ;
    

    【讨论】:

    • 我会尝试(现在我重命名了新表;优惠券而不是优惠券)。但是你是说[Table()] 确实。它是设计使然还是 EF 中的错误?有很多关于 EF 的帖子(大部分是较旧的;EF4 或 5)——并且很多都提到 Table 属性是影响生成的 SQL 的一种方式......
    • 我不认为它被忽略了。我认为当你混合和匹配注释和 Fluent API 时,fluent 获胜。抱歉,我没有手边的测试来确认各种情况
    • 好的,谢谢,我会玩...我没有流畅的API;而且我没有看到注释的效果。
    猜你喜欢
    • 2021-06-30
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    相关资源
    最近更新 更多