私は2つのキー(複合キー)を持つクラスを持っています。次に、次のようなエンティティの主キーを取得するために使用した監査ログ関数を持っています:
string keyName = dbEntry.Entity.GetType().GetProperties().Single(p => p.GetCustomAttributes(typeof(KeyAttribute), false).Count() > 0).Name;
問題は、保存しようとしているモデルの 1 つに複合キーがあることです。
[Key,Column("paymentdetailid", TypeName = "int", Order=0)]
public Int32 PaymentDetailId { get; set; }
[Key,Column("chargedetailid", TypeName = "int", Order=1)]
public Int32 ChargeDetailId { get; set; }
keyName を取得しようとすると、次のエラーが発生します。
Sequence contains more than one matching element
これを解決する方法の手がかりはありますか?最初のキーを取得したいだけです。
ありがとう、
解決
解決策はこれです:
var keyNames = dbEntry.Entity.GetType().GetProperties().Where(p => p.GetCustomAttributes(typeof(KeyAttribute), false).Count() > 0).ToList();
string keyName = keyNames[0].Name;