【发布时间】:2012-03-27 02:33:37
【问题描述】:
一开始我想提一下,我已经和这个东西斗争了几天,并尝试了许多或多或少与这个问题相关的答案。然而我无法解决它。
我有两个类代表数据库中的表。这些是旧应用程序使用的现有表,我无法更改它们。
消息可以有多个消息接收者。
环境:MVC3、EF4.1
类是:
public class Message
{
[ForeignKey("MessageReciepients")]
public virtual int MessageID { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public DateTime Recieved { get; set; }
[ForeignKey("User")]
public int AuthorUserID { get; set; }
//P\\ Navigation properties
public virtual IList<MessageRecipient> MessageReciepients { get; set; }
public virtual User User { get; set; }
}
public class MessageRecipient
{
//[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int MessageID { get; set; }
public int UserID { get; set; }
public bool Read { get; set; }
public bool Important { get; set; }
public bool Deleted { get; set; }
public bool Destroyed { get; set; }
//P\\ Navigation Properties
public virtual User User { get; set; }
}
我的错误是:
外键组件“MessageID”不是在 键入“消息收件人”。确认它没有被明确 从模型中排除并且它是一个有效的原始属性。
如何正确映射这些类、关系以加载消息的接收者?
我可以添加导航属性 User 可以正确地为 Message 工作并正确加载 User 的数据。
我对 .NET 不太熟悉,我在做这件事的同时学习。 我尝试了一些 EF API 配置来映射这些我尝试咒骂它,诅咒它,并且几乎同时哭泣和祈祷。不高兴!!
非常感谢您的帮助。
【问题讨论】:
-
如果您能给我更多提示,我将不胜感激 :)