4
我有兩個簡單的表和一個很大的問題與外鍵:LINQ to SQL的關聯問題外鍵
- 售(SaleID INT PK身份)
- SaleDetail(SaleDetailId INT PK 身份,SaleID INT FK)
這是一個非常基本的與兒童關係的一對多父母。當然還有一些其他的領域,但他們沒有關係,因爲他們沒有用在關係中,所以我沒有把它們包含在列表中。
我映射表中的類我的代碼:
[Table()]
public class Sale
{
[Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert)]
public int SaleId
{
get;
set;
}
private EntitySet<SaleDetail> saleDetails = new EntitySet<SaleDetail>();
[Association(OtherKey = "SaleId", Storage = "saleDetails")]
public EntitySet<SaleDetail> SaleDetails
{
get
{
return this.saleDetails;
}
set
{
this.saleDetails.Assign(value);
}
}
,另一種:
[Table()]
public class SaleDetail
{
[Column(IsPrimaryKey=true, IsDbGenerated=true, UpdateCheck=UpdateCheck.Never)]
public int SaleDetailId
{
get;
set;
}
[Column()]
public int SaleId
{
get;
set;
}
然後我嘗試創建一個新的銷售和添加幾個子對象。
Sale s = new Sale();
s.SaleDetails.Add(new SaleDetail());
s.SaleDetails.Add(new SaleDetail());
,並在最後一步我嘗試添加新的對象:
using (DataContext dc = new DataContext(Database.ConnectionString))
{
var sales = dc.GetTable<Sale>();
sales.InsertOnSubmit(s);
dc.SubmitChanges();
}
的外鍵的問題下面的過程結果 - 子記錄與值0添加在「SaleId」 (FK)專欄。父記錄正確添加並且SaleId主鍵獲取其自動生成的值。我能做些什麼來根據新插入的父項的值自動設置子對象中的SaleId字段?
同樣的問題在這裏。這在WP7.8上。我已經嘗試首先提交父對象(即您的案例中的Sale對象),然後添加子對象並執行另一次提交。沒有不同。子對象的外鍵值仍然爲零。 – 2013-04-13 12:37:49