0

我已经将一些存储过程导入到 EF 中。

只使用存储过程,不使用 LINQ to Entities。

这方面的最佳做法是什么?

我只是有一个使用Entities字段来调用存储过程的类:

public class DataAccess : IDataAccess
{
    private readonly MyEntities entities = new MyEntities();

    public IEnumerable<MyObj> GetMyObJects()
    {
        return entities.GETMyObj().Select(x => new MyObj { Name = x.NAME }).ToList();
    }

    public IEnumerable<MyObj2> GetMyObJects2()
    {
        return entities.GETMyObj2().Select(x => new MyObj2 { Name = x.NAME }).ToList();
    }

    public IEnumerable<MyObj3> GetMyObJects3()
    {
        return entities.GETMyObj3().Select(x => new MyObj3 { Name = x.NAME }).ToList();
    }
} 

这是推荐的吗?我应该Entities为每种方法使用一个新的吗?

如下:

public IEnumerable<MyObj3> GetMyObJects3()
{            
    using(MyEntities entities = new MyEntities())
    {
        return entities.GETMyObj3().Select(x => new MyObj3 { Name = x.NAME }).ToList();
    }
}
4

3 回答 3

1

Julie Lerman 写了一篇非常全面的文章,其中包含有关此主题的示例代码,位于此处

于 2013-09-12T10:57:50.693 回答
1

是的。你在你的帖子中是推荐的方式,所以你会有类似的东西:

public IEnumerable<MyObj3> GetMyObJects3()
{            
    using(MyEntities entities = new MyEntities())
    {
        ObjectResult<SPResult> Results = entities.GetMyObJects3();
        IEnumerable<MyObj3> results = Results.ToList();

        return results;
    }
}

使用 EDMX 文件,创建函数导入。在这个例子GetMyObJects3()中是函数导入。

于 2013-09-14T23:50:08.283 回答
0

只要您的代码只从数据库中读取数据,我认为这样做没有任何问题。

于 2013-09-12T11:25:49.763 回答