繁体   English   中英

在实体框架中查找给定主键的对象

[英]Find object for given primary key in entity framework

我有一个表“ Customer”,它是实体框架中对应的ORMapping Entity Customer,我想找到一个与给定主键相对应的对象。 类似于customerobject.getbjectByID()类的东西,而不是lambda表达式或查询。

var Customer = from c in datacontext.Customer
               where c.CustomerID == your_key
               select c;

假设您的客户表有一个CustomerID列,并且这是主键。

使用DbSet的Find方法:

Customer customer= db.Customer.Find(your_key);

使用lambda表达式:

 var customer= dataContext.Customer.Where(x=>x.CustomerID==your_key).FirstOrDefault();

“代替lambda表达式或查询”

customerobject.Find(id);

进一步来说:

var myDbSetTableEntity = context.MyDbSetTableEntity.Find(object key1, object key2)

最紧凑的方式:

var myCustomer = myContext.Customers.SingleOrDefault(c => c.Id == wantedId);

wich基本上是

myContext.Customers.Where(c => c.Id == wantedId).SingleOrDefault();

其他候选选择方法是Single(),First()和FirstOrDefault()

对于组合键: customerobject.Find(key1, key2, key3)

假设它们都是字符串,您指定键的顺序是什么?

如果您有复合键,请构建一个对象数组,并将其传递给Find()。 例如:

try
{
    RECORD rec; // ie, your entity definition of a record (row)
    Object[] onePK = { id, s0, s1 };
    rec = YourEntities.RECORDs.Find(onePK);
    if (rec == null)
    {
        // handle the record-not-found situation
    }
}
catch (SystemException sex)
{
    string error = sex.Message;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM