簡體   English   中英

從EF最佳實踐中調用SProcs

[英]Calling SProcs from EF best practice

我已經將一些存儲過程導入到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();
    }
}

Julie Lerman撰寫了一篇非常全面的文章,其中包含有關此主題的示例代碼,它位於此處

是。 你的帖子中有什么是推薦的方式,所以你會有類似的東西:

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

        return results;
    }
}

使用EDMX文件,創建函數導入。 在這個例子中, GetMyObJects3()是函數import。

只要您的代碼只從數據庫中讀取數據,我就不會發現任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM