我有一个类,我有 2 个键(复合键),然后我有我的审计日志功能,我曾经在其中获取这样的实体的主键:
string keyName = dbEntry.Entity.GetType().GetProperties().Single(p => p.GetCustomAttributes(typeof(KeyAttribute), false).Count() > 0).Name;
问题是我试图保存的模型之一有一个复合键:
[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();
字符串 keyName = keyNames[0].Name;