私は、このクラス(簡体字)があります。エンティティframwork - 同じテーブルへのREFプロパティを保存
public class Customer
{
public int ID { get; set; }
public string Name { get; set; }
[InverseProperty("Customers")]
public virtual Customer ParentCustomer { get; set; }
[InverseProperty("ParentCustomer")]
public virtual ICollection<Customer> Customers { get; set; }
}
をしかし、私はそれが動作していない「ParentCustomer」を更新しようとすると、私はこのようにそれを更新しよう:
var currCostumer = context.Customers.First(a => a.ID == key);
currCostumer.ParentCustomer = context.Customers.First(a => a.ID == 12);
await context.SaveChangesAsync();
私はトランザクション内でもなくても試してみました。私は生成されたSQLでは、このParentCustomer(ParentCustomerID)フィールドを除くすべてのフィールドを更新することがわかります。次のような "currCustomer"を取得しようとすると、正しいカスタマーを参照していることがわかります。しかし、私は新しいwebapiの要求でそれを試してみてください。
var currCostumer = context.Customers.First(a => a.ID == key);
// currCostumer.ParentCustomer is correct here (if same request)
これは、モデルビルダーである:ここで
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Customer>("Customer");
ここで、PreferredResellerですか?正しいモデルを記述してください – Vecchiasignora
Entity Frameworkによって生成されたか、手動で生成されたクラスですか?エンティティは適切に設定された関係を持っていますか? – Andrew
申し訳ありませんが、 "PreferredReseller"はParentCustomerである必要があります。 – Robert