Fluent API使用复合外键配置多对一

时间:2015-01-07 13:10:46

标签: c# entity-framework

我有一个具有复合键的查找表 我有一组可以访问它的表,它们构建在一个抽象类上。

我似乎无法使映射工作,我不知道为什么。我在这里看了很多博客文章和问题,但我仍然坚持。

这是查找表

public partial class ColumnMapping
{
    public string TableName { get; set; }
    public int Id { get; set; }
    public string Name { get; set; }
    public string Value { get; set; }

}

这是它的映射

ToTable("ColumnMap");
HasKey(t => new { t.TableName, t.Id });
Property(t => t.TableName).HasColumnName("TableName");
Property(t => t.Id).HasColumnName("ID");
Property(t => t.Name).HasColumnName("Name").IsRequired();
Property(t => t.Value).HasColumnName("Value").IsRequired();

在另一张表中我有属性

public virtual ColumnMapping ColumnMap { get; set; }

I looked at this post

这给出了类似的东西

modelBuilder.Entity<Course>()  
    .HasRequired(c => c.Department)  
    .WithMany(d => d.Courses) 
    .HasForeignKey(d => new { d.DepartmentID, d.DepartmentName });

但这并不奏效。

我似乎无法获得不会导致编译错误的映射。

例如

HasRequired(m => m.ColumnMap).WithMany().HasForeignKey(ex => new { tableName, ex.Id });

不允许。

0 个答案:

没有答案