通过使用以下代码,我有一种无效的方式返回我表中的特定实体:
private static EntityModel.Name GetNameEntity(EntityModel.MultiIndexEntities context, int skipCount)
{
EntityModel.Name entity = context.Names
.OrderBy(r => r.EntityId)
.Skip(skipCount)
.FirstOrDefault();
return entity;
}
现在,我想要更多地改进它。我表中保存的每个实体都有唯一的ID值和类型值。我想要做的是重写我的方法,允许我传入这些值并返回该实体。
我对linq和实体框架都很陌生,到目前为止这是我的鄙视:
private static EntityModel.Entity GetEntity(EntityModel.MultiIndexEntities context, int registrationTypeId, string name)
{
EntityModel.RegistrationType registrationType = context.RegistrationTypes
.Where(p => p.RegistrationTypeId == registrationTypeId)
.Where(p => p.Description == name);
return registrationType;
}
正如我所说,我不知道自己在做什么。有人可以帮帮我吗?
答案 0 :(得分:2)
如果RegistrationTypeId
是表格的标识,找到一个只需要你的实体
context.RegistrationTypes.Find(registrationTypeId);
如果没有,Farhad的代码会做你想要的,但是从你正在做的事情来看......你应该考虑重新设计,因为看起来你可能会过度复杂化。
答案 1 :(得分:1)
您可以更改为:
context.RegistrationTypes
.Where(p => p.RegistrationTypeId == registrationTypeId && p.Description == name)
.FirstOrDefault();
或
context.RegistrationTypes
.FirstOrDefault(p => p.RegistrationTypeId == registrationTypeId && p.Description == name);