2010-08-23 2 views
3

Есть LOF разница между Linq к Sql и Entity Framework, как Linq к SQL является один к одному отображению и EF многие ко многим картографирования и многие другие, которые можно найти на Entity Framework vs LINQ to SQLразница между LINQ к SQL и Entity Framework

Но здесь я задаю вопрос с EF и Linq на Sql, мы сначала создаем Entities, а затем генерируем таблицы или другим способом, а какие - положительные и отрицательные стороны обоих подходов. В EF могут быть любые бизнес-объекты, которые наследуются от нескольких таблиц и не представляют никакой вещи в БД. Является ли Linq для объектов отличными от EF?

Пожалуйста, дайте мне знать, если вопрос не ясен или неправильно спрошен. Спасибо заранее, ребята.

ответ

2

Для выпуска «производства» как EF & L2S требует, чтобы модель данных (читая: Схема базы данных) была установлена ​​до того, как будут созданы какие-либо классы. Возможность сначала создавать ваши классы, а затем генерировать БД, который доступен в виде CTP EF4, который был недавно опубликован ScottGu blogged.

Что касается единого объекта, отражающего несколько таблиц: я считаю, что в настоящее время взаимно однозначное отношение: 1 таблица = 1 сущность.

+0

Спасибо Аллен, Да EF4 может сделать это в обоих направлениях. При запуске нового проекта, который должен быть предпочтительнее? и почему. – Praneeth

+0

Согласно Microsoft, при выполнении .NET 4.0 EF4 является предпочтительным решением для работы с O/RM. Многие новые технологии будут размещены поверх EF (например, для служб данных WCF), а Microsoft по-прежнему исправляет ошибки на L2S, она больше не разрабатывается. Или, как они это называют; это делается ;-) – Steven

1

В linq to SQL вы сначала создаете базу данных, затем импортируете ее, создаете приложение, и ваши объекты будут созданы.

Я начал обманывать EF с первого изучения MVC, а затем в момент начала работы с кодом, который я использовал linq для SQL, и, ну, это как linq, нет никакой реальной разницы в запросах linq что я могу сказать.

+0

Конечно, есть различия. Особенно между L2S и EF3.5. Например, EF3.5 не поддерживает «Single» и «SingleOrDefault». Он не знает, как переводить запросы, содержащие метод «Contain» (например: 'from c in db.Customers, где ids.Contains (c.Id) select c'). Помимо этого, производительность и удобочитаемость L2S намного лучше. Все это было исправлено BTW с EF4. – Steven

2

Я считаю, что с помощью EF 4 или надстройки вы можете сначала создать свою модель и создать ее схему БД. До EF 4 и с Linq-to-SQL вам нужно начать с БД и отобразить модели.

+0

Спасибо Тейлору, что здесь предпочтительный подход? – Praneeth

+0

Не уверен, что есть «предпочтительный подход». Если у вас уже есть БД, я бы использовал инструменты Linq для моделирования кода. Если вы начинаете совершенно новый проект и не имеете БД, то, возможно, первый подход кода будет лучше – taylonr

+0

Действительно: класс LINQ to SQL 'DataContext' содержит метод CreateDatabase, который позволяет вам создавать базу данных от модели. L2S не содержит функции для генерации операторов SQL для этого, как это имеет дизайнер EF4. Однако, когда вы используете свойство «Log», вы, вероятно, получите довольно близко. – Steven

Смежные вопросы