C# Linq到SQL与数据库优先方法中的实体框架

C# Linq到SQL与数据库优先方法中的实体框架,c#,entity-framework,linq-to-sql,orm,C#,Entity Framework,Linq To Sql,Orm,在遵循数据库优先的方法时,我对Linq to SQL和实体框架之间的区别感到困惑,因为我找不到任何明显的区别 在我的例子中,当我使用Linq to SQL时,我使用Linq to SQL创建表,然后使用Linq to SQL创建表示表的类,现在当我切换到实体框架时,我仍然遵循相同的步骤创建数据库表,然后使用EF创建关联的类 我以同样的方式与这些类交互,例如,我曾经使用相同的语法和方法查询用户类,但有一次是使用Linq to SQL创建用户类,另一次是使用EF创建用户类,那么区别在哪里呢 第二个问

在遵循数据库优先的方法时,我对Linq to SQL和实体框架之间的区别感到困惑,因为我找不到任何明显的区别

在我的例子中,当我使用Linq to SQL时,我使用Linq to SQL创建表,然后使用Linq to SQL创建表示表的类,现在当我切换到实体框架时,我仍然遵循相同的步骤创建数据库表,然后使用EF创建关联的类

我以同样的方式与这些类交互,例如,我曾经使用相同的语法和方法查询用户类,但有一次是使用Linq to SQL创建用户类,另一次是使用EF创建用户类,那么区别在哪里呢

第二个问题:如果我使用EF将表映射到类中,是否仍然可以在同一应用程序中使用Linq to SQL来查询EF类?

Linq是一种基本技术—这是在C中为您提供SQLish查询选项的语法—它完全独立于您是使用Linq to SQL还是EF。因此,如果您想使用LINQ语法查询数据类,您可以使用这两种框架,但一旦使用LINQtoSQL和LINQtoEntities。不能对实体框架EDMX模型使用Linq to SQL

LINQtoSQL很棒

如果您需要非常简单的1:1映射,那么在您的域模型中,一个表等于一个类 如果您只需要SQL Server,那么Linq to SQL不支持其他任何东西 如果你想快速启动和运行 另一方面,实体框架

支持多个后端SQL Server、Oracle、Firebird-其他可能会跟进 支持完整的概念数据建模策略-您可以在数据库中定义物理模型,在应用程序中定义概念模型,以及两者之间的映射 使您能够处理诸如将单个业务实体映射到多个表之类的事情 支持每层次表和每类表继承方案 支持从数据库中刷新/更新模型EDMX文件当Linq中的内容更改为SQL时,您基本上必须删除并重新创建那些涉及的实体-从而失去您可能进行的所有自定义 简而言之:LINQtoSQL是一个伟大的、简单的、精益的SQL Server ORM——如果它能满足您的所有需要,请使用它。Entity Framework是一个完全不同的野兽,功能更强大,但也更复杂,更大-非常适合您的下一个企业关键应用程序,但对于您的个人博客应用程序来说可能有些过火:-


如果您想创建一些经得起未来考验的东西,并将使用微软正在推动的或技术,那么您应该使用实体框架。特别是在v4中,它也比以前更易于使用、更精简、更有用。

至于你的第二个问题,我认为更可能是另一个问题。因为我使用EF作为企业解决方案,每天都有越来越大的模型,所以我们有性能问题,特别是在第一次初始化EF或预热时,我读了这篇文章,现在我犹豫是否必须更改ORM?也许使用Dapper,我知道它没有改变跟踪或LLBLGenPro可以帮助!我们正在研究企业级解决方案,我希望了解您的想法。非常感谢。
        public IQueryable<User> findstudents(string term)
        {
            return from student in entities1.Users
                   where student.UserID.Contains(term)
                   select student;

        }