我对使用数据库第一种方法时Linq-to-SQL和Entity Framework之间的区别感到困惑,因为我找不到任何明显的差异。
在我使用Linq-to-SQL的情况下,我曾经创建表,然后我使用Linq-to-SQL创建表示表的类,现在当我切换到Entity Framework时,我仍然在关注相同的步骤(创建数据库表然后使用EF创建关联的类)。
我正在以相同的方式与这些类进行交互,例如,我曾经使用相同的语法和方法查询User类,但有一次使用Linq-to-SQL创建User
类时另一次使用EF创建时,那么差异在哪里?
public IQueryable<User> findstudents(string term)
{
return from student in entities1.Users
where student.UserID.Contains(term)
select student;
}
第二个问题如果我使用EF将表映射到类中,是否仍然可以在同一个应用程序中使用Linq-to-SQL来查询EF类?
答案 0 :(得分:9)
LINQ 是一种基础技术 - 这种语法为您提供了C#中的SQLish查询选项 - 这完全独立于您使用Linq-to-SQL还是EF。因此,如果您想使用LINQ语法查询数据类 - 您可以使用两个框架来执行此操作 - 但是一旦使用Linq-to-SQL并使用Linq-to-Entities。您不能对实体框架EDMX模型使用Linq-to-SQL。
Linq-to-SQL很棒
实体框架
简而言之:Linq-to-SQL对于SQL Server来说是一个伟大的,简单的,精益的“ORM”ORM - 如果它能满足您的需求,请使用它。实体框架是一个非常不同的野兽,更强大,但也更复杂,更大 - 适合您的下一个关键企业应用程序,但可能对您的个人博客应用程序有点过分: - )
如果您想创建“面向未来”的东西,并且将使用Microsoft推动未来的OR技术,那么您应该使用Entity Framework。特别是在v4中,它也更容易使用,比以前更精简,更有用。