我在項目中遇到了這個錯誤。現在卡住了一個月。 問題是,我正在對現有項目進行增強,並且域圖層超過50個表格非常複雜,所以我無法找到根本原因。EF 4.3.1代碼優先序列包含多個匹配元素錯誤
有趣的是,如果所有域類所在的項目位於主解決方案中,則會發生錯誤。但是,當我複製項目並構建它時,將該dll複製到Web應用程序bin文件夾,它的工作原理沒有錯誤。完全相同的代碼。其他團隊成員也不會遇到此錯誤。
此外,當我在從TFS開發之前獲取原始源代碼時,會發生相同的錯誤。至少在一開始的2周內,我們就能夠做到沒有任何錯誤。那麼是否有可能導致錯誤的SQL DB?
所以我想知道如果這是一個EF錯誤。任何指針幫助我調試或找出罪魁禍首域類?
下面是錯誤截圖。
http://imageshack.us/photo/my-images/10/8a1w.jpg/
--UPDATE-- 的錯誤是在context.Database.Initialize web應用程序啓動時。
管理找到導致問題的實體。 a。它是TPT + TPH b。 2個表具有相同的外鍵屬性名稱,在我的示例中,它是WorkerBenefit屬性。
這裏有報道:http://entityframework.codeplex.com/workitem/677。 它聲明發布:6.0.0,意味着我必須使用EF6?
[Table("Person")]
public abstract class Person
{
public int Id { get; set; }
public string PersonNumber { get; set; }
}
[Table("FullTimeWorker")]
public class FullTimeWorker : Person
{
public string FullTimeWorkerProperty { get; set; }
[ForeignKey("WorkerBenefit")]
public int WorkerBenefitId { get; set; }
[ForeignKey("WorkerBenefitId")]
public virtual WorkerBenefit WorkerBenefit { get; set; }
}
[Table("PartTimeWorker")]
public class PartTimeWorker : Person
{
public string PartTimeWorkerProperty { get; set; }
[ForeignKey("WorkerBenefit")]
public int WorkerBenefitId { get; set; }
[ForeignKey("WorkerBenefitId")]
public virtual WorkerBenefit WorkerBenefit { get; set; }
}
public class MorningShiftWorker : PartTimeWorker
{
public string MorningShiftWorkerProperty { get; set; }
}
public class EveningShiftWorker : PartTimeWorker
{
public string EveningShiftWorkerProperty { get; set; }
}
什麼查詢會產生錯誤?你能向我們展示涉及的POCO類嗎? – Dabblernl
這不是一個查詢,它是在上下文初始化方法。 – vincent007
你能否確認探頭與EF6相去甚遠?現在你知道了原因,你應該可以在一個簡單的測試環境中重現它。 – Dabblernl