2010-10-10 28 views
0

我收到此錯誤信息:如何解決「無法決定要考慮哪些屬性鍵」的錯誤

「不能決定哪些財產要考慮的關鍵 - 你可以創建一個名爲「ID」或標記一個與

context.tt產生有問題的代碼SubSonicPrimaryKey屬性」:

public SqlQuery Delete<T>(Expression<Func<T,bool>> column) where T:new() 
    { 
     LambdaExpression lamda = column; 
     SqlQuery result = new Delete<T>(this.Provider); 
     result = result.From<T>(); 
     result.Constraints=lamda.ParseConstraints().ToList(); 
     return result; 
    } 

以我DB相應的表中的通常有一個主鍵叫做ID。我試圖插入SubSonicPrimaryKey屬性:

uint _ID; 
    [SubSonicPrimaryKey] 
    public uint ID 
    { 
     get { return _ID; } 
     set 
     {... 

我怎樣才能解決這個問題?

回答

1

您應該發佈異常的堆棧跟蹤。

這只是一個瘋狂的猜測,但我想亞音速找到兩個可能的主鍵,一個叫ID,一個叫SubSonicPrimaryKey屬性,並且不檢查它們是否相等,因爲可能的鍵的數量不等於1拋出異常。

您應該嘗試刪除您班級的SubSonicPrimaryKey屬性,因爲該屬性已被稱爲ID

0

我的猜測是你的問題與uint值類型有關。 SubSonic有處理無符號值類型的問題。 嘗試使用int屬性代替您的主鍵!