2
我並不確定這是否是OData
問題,WCF
,EF
或什麼;我是新手,這些線條仍然模糊。是否可以使用相關實體(而不是相關ID)使用OData創建實體?
我一直在嘗試在C#MVC .NET應用程序中使用OData服務創建一些實體。通過使用相關實體的ID做它似乎工作正常,例如:
Container c = getContainer();
Foo f = new Foo();
f.Name = "blah";
f.ThingId = 7;
c.AddToFoos(f);
c.SaveChanges();
但是,直接使用相關實體不起作用。這在我使用本地SQL數據庫時適用,但不適用於OData服務。例如:
Container c = getContainer();
Foo f = new Foo();
Thing t = c.Things.Where(v => v.id==7).FirstOrDefault();
f.Name = "blah";
f.Thing = t;
c.AddToFoos(f); // or Attach(f)
c.SaveChanges();
此外,使用SetLink
也不起作用。在所有的失敗情況下,請求中的Id都設置爲0。在SetLink
的情況下,它有一個@odata.bind
參數。
由於請求中ID爲0,這似乎是客戶端映射問題。是否有可能讓這種行爲起作用?