【发布时间】:2016-12-07 17:28:45
【问题描述】:
我按照code first many to many 的建议为我的 m:m 表建模。下面是我的模型(这反映在数据库中):
public class Catalog {
...
public virtual ICollection <CatalogItem> CatalogItems {get;set;}
public virtual ICollection <CatalogSubscriber> CatalogSubscribers {get;set;}
}
public class Item {
...
public virtual ICollection <CatalogItem> CatalogItems {get;set;}
}
public class Subscriber {
...
public virtual ICollection <CatalogSubscriber> CatalogSubscribers {get;set;}
}
public class CatalogItem{
[ForeignKey("Catalog")]
public Guid Catalog_Id { get; set; }
[ForeignKey("Item")]
public Guid Item_Id { get; set; }
public virtual Catalog Catalog { get; set; }
public virtual Item Item { get; set; }
}
public class CatalogSubscriber{
//similar to catalogitem
}
我在尝试获取目录时收到错误“无效的列 Subscriber_Id”,并且我可以在 select 语句中看到,由于某种原因,它认为 Subscriber_Id 是目录中的列(它不是)。我试过这个solution,但无济于事。有趣的是,CatalogItems 工作得很好,直到我在 CatalogSubscribers 上添加了 m:m。 CatalogItems 似乎根本没有问题。我在这里做错了什么?
【问题讨论】:
-
另外,从您的第一个链接开始,如果您没有以流畅的方式进行操作,[Key, Column(Order = 0)] 和 [Key, Column(Order = 1)] 部分很重要。
标签: c# sql-server asp.net-mvc entity-framework-6 linq-to-entities