【发布时间】:2012-07-22 22:47:56
【问题描述】:
我有一个类,我有 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;
【问题讨论】:
-
如果您想要多个结果,也许您不应该使用“Single”?
-
你是对的。问题是“单身”。非常感谢
标签: entity-framework entity-framework-4