Отображение таблиц ассоциаций в коде EF 4.1 первым
Я не уверен, как сопоставить следующие таблицы ниже вEF 4.1 code first
и какие объекты мне нужны для представления таблиц. Как я могу получить список характеристик продукта?
В настоящее время у меня есть толькоProduct
класс.
Products Table:
Id
Name
IsActive
ProductSpecification Table:
ProductId
SpecificationId
Specifications Table:
Id
Name
IsActive
ProductSpecifications
таблица ассоциаций У меня также есть следующее, определенное в моем классе контекста:
public DbSet<Product> Products { get; set; }
РЕДАКТИРОВАТЬ
Пожалуйста, смотрите мой обновленный оригинальный пост. Я изменил Id таблицы продуктов и спецификаций.
В моем классе контекста у меня есть следующее:
public DbSet<Product> Products { get; set; }
public DbSet<Specification> Specifications { get; set; }
В моем хранилище у меня есть следующее:
public Product GetById(int id)
{
return db.Products
.Include("Specifications")
.SingleOrDefault(x => x.Id == id);
}
мойProduct class
(Частичные):
public class Product : IEntity
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsActive { get; set; }
public ICollection<Specification> Specifications { get; set; }
}
мойSpecification class
:
public class Specification : IEntity
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsActive { get; set; }
public ICollection<Product> Products { get; set; }
}
Это было все, что я сделал из ответа Слаумы. Я не делал сопоставление вручную, как он сказал, что я должен, но сначала я должен понять следующее:
Учитывая мои классы и таблицы сверху, что конкретно указано в соглашениях об именах EF 4.1 о том, как он обрабатывает таблицы ассоциаций? Причина, по которой я спрашиваю, заключается в том, что я получаю следующую ошибку в моем методе GetById:
Invalid object name 'dbo.SpecificationProducts'.
РЕДАКТИРОВАТЬ 2
Я забыл упомянуть следующее :) В качестве значения продукта может использоваться высота спецификации. И для этой высоты мне нужно указать значение. Как 100 дюймов. Поэтому я изменил таблицу ProductSpecifications, чтобы столбец значений называлсяSpecificationValue
, этот столбец будет содержать значение 100 дюймов. Как бы я изменил код, чтобы получить это значение? Мне нужно отобразить это на мой взгляд.