EF 6.1中的LINQ查询自定义对象最佳实践

syed mhamudul hasan akash

我在Visual Studio 2013中使用EF 6.1。我有一个View模型

public class SaprePartsViewModel
{
    public long ItemID { get; set; }
    public string ItemCode { get; set; }
    public string ItemName { get; set; }
}

并且还具有SapreParts与列名称相同的数据库表

我已经完成了这两种方法来获取自定义对象

一世。

var sqlQueryList = db.Database.SqlQuery<SaprePartsViewModel>(
    "select ItemID,ItemCode,ItemName from SpareParts").ToList(); 

ii。

 var linqQueryList = db.SpareParts.Select(x => new SaprePartsViewModel
        {
            ItemID = x.ItemID,
            ItemCode = x.ItemCode,
            ItemName = x.ItemName
        }).ToList();

两种查询都可以正常工作,但是我的问题是要使用哪一个?哪个是性能最佳的?

吉姆·托兰(Jim Tollan)

[根据我对OP的评论]

我认为性能是很难确定的主题,因为涉及的指标太多。对于上面的简单查询,显而易见的答案是在免费获得智能感知时使用EF约定,并且使测试变得轻而易举。

根据sql查询的静态字符串会随着时间的推移而中断(坏,坏,坏!!),查询的主体也会随着时间而变化(更糟,更糟,更糟),因此您的目标移动了,选项i-go ii,除非您有可衡量的问题。

顺便说一句,性能不仅关乎速度(恕我直言),还关乎目的明确和易于维护。苏格兰有一句老话,匆忙,速度较慢简而言之,要平衡从查询中节省几毫秒与将工作代码发布并轻松维护所带来的影响。您的团队会感谢您(随着时间的流逝,您自己也会如此)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章