0

我正在使用实体框架和代码优先映射到遗留数据库(我知道如果我已经构建了数据库,那么我应该使用“数据库优先”方法,但是在某些方面,我手动填充注释比处理控制更好在设计器上),其中有一个表有一个指向另一个表的键(它实际上是另一个数据库中的表的同义词),它像外键一样工作,但它实际上并没有在表模式中定义。

问题是:我可以强制这种关系存在于我的 POCO 课程中吗?我可以使用 Fluent API 映射它吗?这可能吗?

像往常一样,提前谢谢!

4

1 回答 1

0

当然,您可以通过流畅的映射或数据注释手动定义外键和导航属性。

假设我有一个Parent表,其中包含一个字段和一个指向第二个数据库中表CatCode的同义词。两者在一个上下文中都有对应的类和 s。映射(派生自)可能看起来像(构造函数):CategoryExCategoryDbSetEntityTypeConfiguration

public ParentMap()
{
    this.HasKey(t => t.Id);
    this.HasRequired(p => p.Category).WithMany().HasForeignKey(p => p.CatCode);
    ...
}

public CategoryMap()
{
    this.HasKey(t => t.CatCode);
    this.ToTable("CategoryEx");
    ...
}

Parent看起来像:

public class Parent
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string CatCode { get; set; }
    ...
    public Category Category { get; set; }
}
于 2012-11-16T20:24:44.143 回答