GoC*_*ado 15 c# entity-framework foreign-keys primary-key entity-framework-4.1
我们使用EF 4.1和流畅的API从遗留数据库中获取数据(我们不允许更改).我们在创建两个表之间的关系时遇到问题,其中相关列不是主键和外键.
使用下面的类,我们如何配置之间的一对多关系Report,RunStat以便Report.RunStats返回字段相等的所有RunStat实体ReportCode?
public class Report
{
    [Key]
    public int ReportKey { get; set; }
    public string Name { get; set; }
    public int ReportCode { get; set; } // Can we associate on this field?
    public virtual ICollection<RunStat> RunStats { get; set; }
}
public class RunStat
{
    [Key]
    public int RunStatKey { get; set; }
    public int ReportCode { get; set; }
    public DateTime RunDate { get; set; }
}
基本上,我想使用Fluent API配置EF,使其认为Report.ReportCode是外键并RunStat.ReportCode成为主键.
Lad*_*nka 11
这不可能.EF中的关系遵循与数据库中完全相同的规则.这意味着主表必须具有唯一标识符,该标识符由依赖表引用.在数据库的情况下,标识符可以是主表的主键或唯一列.否则它是无效的关系.
实体框架不支持唯一键.如果你想有一个之间对多的关系Report和RunStat你的依赖表(RunStat)必须包含的值列Report.ReportKey.有没有其他办法让它自动-否则,你只是必须使其自定义属性,并从实体框架手工填写它,当你需要它.
| 归档时间: | 
 | 
| 查看次数: | 11790 次 | 
| 最近记录: |