【问题标题】:Map entity with same table in different schemas Entity Framework 6 code first在不同模式中映射具有相同表的实体Entity Framework 6代码首先
【发布时间】:2016-07-15 18:28:11
【问题描述】:

如果存在类似问题,我深表歉意,但无法准确找到我想要的。

我正在使用 Entity Framework 6 Code First。我有不同方案的数据库。每个模式映射到不同的用户,表是相同的交叉模式。我创建了 Entity Framework 6 Code First 并使用以下示例中的属性将实体映射到表:

[Table("Log")]
public partial class Log
{
    /// <summary>
    /// Id
    /// </summary>
    public int Id { get; set; }
    /// <summary>
    /// Message
    /// </summary>
    [Required]
    public string Message { get; set; }
}

上面的这个例子不起作用,因为我没有使用默认模式并且我有多个方案。如果我在属性中包含架构名称,例如像这样

    [Table("SHEMA_NAME.Log")]

它会起作用的。

我知道我可以在模型创建期间以编程方式提供架构名称来解决我的问题。

但是有没有办法使用一些通用的方法来映射实体与来自不同方案的所有表而不指定模式名称?

谢谢

【问题讨论】:

    标签: c# entity-framework


    【解决方案1】:

    在您的上下文中,您可以指定一个 DefaultSchema:

    public class YourContext: DbContext 
    {
        public YourContext(): base() 
        {
        }
    
        public DbSet<Log> Logs { get; set; }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            //Configure default schema
            modelBuilder.HasDefaultSchema("SHEMA_NAME");
        }
    }
    

    见: http://www.entityframeworktutorial.net/code-first/configure-entity-mappings-using-fluent-api.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多