2
カスタマークラスは、「Id」プロパティーが使用可能なEntityから継承しています。しかし、私がコントローラにJSONオブジェクトをポストすると、「Id」を除くすべてのプロパティが開始されます。 "Id"は常に0ですFromBodyはバインドしません。Inherited Id
何か問題がありますか?
public abstract class Entity<TId> : IEquatable<Entity<TId>>
{
public TId Id { get; protected set; }
}
public class Customer : Entity<int>
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
//Controller
public void Post([FromBody] Customer customer)
{
if (customer.Id > 0)
_customeRepository.Update(customer);
_customeRepository.Insert(customer);
}
OOPS!あなたが正しいです! –
セッターはあなたが正しいと保護されています。私はそれをそのままプロパティセッターを残したい場合は、任意の代替を持っていますか?このプロパティをどのように設定できますか? –
setterが保護されている場合、派生クラスからのみアクセスできます。もう一つの選択肢は、リフレクションによってsetterを呼び出すことです。しかし、とにかくそれはコードのにおいであり、推奨されるアプローチではありません。 – CodeFuller