C# 使用实体框架将LINQ语句重构为方法
我在代码中多次使用这些Linq查询。我想为它们创建一个方法并返回它们的结果C# 使用实体框架将LINQ语句重构为方法,c#,entity-framework,linq,methods,C#,Entity Framework,Linq,Methods,我在代码中多次使用这些Linq查询。我想为它们创建一个方法并返回它们的结果 var myevent = (from v in myEntities.Events where _EventID == v.EventID select v).SingleOrDefault(); var comments = (from c in myEntities.Fora
var myevent = (from v in myEntities.Events
where _EventID == v.EventID
select v).SingleOrDefault();
var comments = (from c in myEntities.Fora
orderby c.DateCreated descending
where c.EventID == _EventID
select c).ToList();
您的问题不是很清楚,但听起来您只需要两个方法来返回linq查询的结果
public Events GetEvent(int id)
{
return (from v in myEntities.Events
where _EventID == id
select v).SingleOrDefault();
}
public List<Fora> GetComments(int id)
{
return (from c in myEntities.Fora
orderby c.DateCreated descending
where c.EventID == id
select c).ToList();
}
public Events GetEvent(int-id)
{
返回(来自myEntities.Events中的v)
其中_EventID==id
选择v).SingleOrDefault();
}
公共列表GetComments(int id)
{
返回(来自myEntities.Fora的c)
orderby c.DateCreated降序
其中c.EventID==id
选择c.ToList();
}
你的问题有太多的未知数无法具体回答,这是SO特别关注的问题
我假设您的实体是DB支持的
您需要了解事务范围。您可以使用一个带有静态“myEntities”的单独类,并按照上面的匿名方式实现。但是,如果不同的线程正在调用,您可能会得到一个嵌套事务。您也不希望每次调用时都创建一个新连接
我将把它作为更广泛的数据访问层的一部分来实现,并将您的连接作为构造函数的一部分传递给它。如果选择使用静态方法,则应将连接作为参数之一传递
或者,您可以使用此逻辑创建一个抽象类,并让子类实现它。好的,您需要权限吗?您有问题吗?请返回myevent和方法中的注释…?您好,我正在回顾您的问题,因为这是您关于Stackoverflow的第一个问题。请确保在您的描述中有一个以“?”结尾的特定问题。这将帮助用户了解您需要什么。顺便说一句,您可以缩短为var myevent=myEntities.Events.SingleOrDefault(e=>e.EventId==\u EventId);对不起,含糊不清。这是我第一次发布问题,我想我已经给出了所有相关的信息。是的,它是DB支持的。我的目标是将一个名为_EventID的变量传递给此方法,并让它返回一条记录,我可以使用该记录填充如下字段:lbleventitle.Text=myevent.EventTitle;