使用linq to sql作为我的数据层来检索数据,然后将数据填充到我的业务层中是不是一个坏主意?
我是否会面临性能问题?
从数据库获取数据并将其填充到业务对象中的最有效方法是什么?
答案 0 :(得分:3)
Linq to Sql将为除了最苛刻的应用程序之外的所有应用程序提供足够好的性能。如果您只考虑使用SQL Server数据库,Linq to SQL是一个非常高效的ORM,并且它“正常工作”。
我曾经在SQL Server上开发的所有.NET应用程序上使用Linq to SQL。然后我发现了Entity Framework(4.1)和Code First方法的简洁和优雅。这种方法与域驱动设计很好地协作,同时允许您通过基于约定的方法编写业务对象而无需编写任何持久性代码。值得思考。
答案 1 :(得分:2)
如果你没有做任何蠢事,LINQ2SQL不会给你带来很大的性能问题。使用LINQ2SQL有一个很小的开销,但这个很小。
最有效的方法是直接选择选择部分中的业务对象。
var myResult = from product in context.Products
where product.StockQty > 10
select new MyBusinessProduct
{
Name = product.Name,
Category = product.Category,
etc = product.etc, //...
}
通常,您可以使用LINQ对象作为业务对象,可以使用部分类中的业务方法来装饰它们,还可以在LINQ类上实现部分方法来实现验证规则。