我的問題是,我試圖添加一個子實體,但仍然遇到問題。在實體框架中添加對象的問題,我猜這是我的數據庫模型的問題
這是我的情況:
我有一堆配置文件。 每個配置文件都附帶一組CategoryPriorities。 每個CategoryPriorities都有一個AttributePriority連接到它。
當我更新我在Visual Studio中的模型我得到如下:
我可以沒有任何麻煩得到以下工作:
CategoryPriority _categoryPriority = new CategoryPriority();
Profile _profile = DB.GetProfile(ProfileID);
_profile.CategoryPriorities.Add(_categoryPriority);
DB.savechanges()
但不知何故以下將不起作用:
AttributePriority _attributePriority = new AttributePriority();
CategoryPriority _categoryPriority = new CategoryPriority();
_categoryPriority.AttributePriorities.Add(_attributePriority);
// Error! There is no option of "Add" or any other operation for the matter.
Profile _profile = DB.GetProfile(ProfileID);
_profile.CategoryPriorities.Add(_categoryPriority);
DB.savechanges()
我猜這是由於如何建立EF模型。 理想情況下,我想在CategoryPriority和AttributePriority表之間建立一對一的關係。
我將添加模型的圖像。
任何想法? 任何幫助非常感謝!
編輯: 我已添加圖片到我的文章。
有趣的是,如果我寫:
Profile _p = new Profile();
沒有的_p.Add
選擇有兩種。顯然我失去了一些東西..
編輯2: 好了,我得到了它的工作,幾乎... 我知道,不是最美觀的代碼,我工作的..
Profile _profile = this.GetProfile(this.GetUserID(arrangeattributesviewmodel.ProfileID));
int iter = 0;
foreach (AttributeListForCategory _category in arrangeattributesviewmodel.AllAttributesForCheckBoxList.CategoryAttributeList)
{
iter++;
CategoryPriority _categoryPriority = new CategoryPriority();
_categoryPriority.ProfileID = arrangeattributesviewmodel.ProfileID;
_categoryPriority.CategoryID = _category.CategoryID;
_categoryPriority.CategoryName = _category.CategoryName;
_categoryPriority.CategoryID = _category.CategoryID;
_categoryPriority.CategoryPriorityNR = iter;
AttributePriority _attributePriority = new AttributePriority();
_attributePriority.AttributePriorityString = _category.CompilePriorityString();
_categoryPriority.AttributePriority = _attributePriority;
_profile.CategoryPriorities.Add(_categoryPriority);
db.SaveChanges(); // It fails here with the message below..
}
{「從屬ReferentialConstraint中的屬性映射到商店生成的列。專欄:?CategoryPriorityID'「}
任何想法
編輯3: 解決它
我在我的CategoryPriority來實例化一個AttributePriority ...
'CategoryPriority'實體中的'AttributePriorities'集合嗎?你應該展示你的模型,並且創建你的表的腳本。 – 2011-03-17 08:52:00
我這麼認爲,對EF來說很新鮮。我會盡快爲我的數據庫模型添加圖像(需要另外2個信譽分數,我認爲)。 – bek 2011-03-17 09:13:13