Как Entity Framework связывает настраиваемый объект POCO с таблицей?

Я пытаюсь добавить новый EF4 POCO к существующему решению. Я получаю следующую ошибку, и когда я смотрю на существующий POCO, уже созданный в решении, я не могу понять, как устанавливается связь между POCO и таблицей.

Не удалось найти информацию о сопоставлении и метаданных для EntityType "XXX.Run".

Вот пример того, что работает в решении, и я не могу понять, почему:

namespace XXX.AnotherPlace.Products
{
    public partial class Product : BaseEntity
    {

Когда я смотрю на файл edmx, нет никакого значения этого класса, только другие классы в пространстве имен, которые, похоже, не существуют:

<EntitySet Name="Product" EntityType="XXX.Store.tbl_Product" store:Type="Tables" Schema="dbo" />  

<End Type="XXXX.Data.Product" Role="Product" Multiplicity="1" />

Что мне не хватает, есть какие-то соглашения, которым нужно следовать? Как связать таблицу с моим собственным POCO


person Beth    schedule 14.08.2010    source источник


Ответы (1)


Ваша сущность должна существовать в edmx. Традиционный подход состоит в том, чтобы создать объект в области проектирования EF, а затем использовать шаблон T4 POCO для создания ваших классов. Предполагая, что в решении используются шаблоны, вы можете добавить объект в область конструктора, а затем повторно запустить настраиваемый инструмент на странице свойств для кода, созданного T4.

person Darren Lewis    schedule 14.08.2010
comment
Мне нужно использовать шаблоны t4? Нет возможности вручную создать класс и обновить edmx из базы данных, а затем связать \ сопоставить класс с сущностью edmx? - person Beth; 15.08.2010
comment
Нет, вам не обязательно его использовать. Шаблон - это просто инструмент для генерации кода. Пока ваш poco существует в edmx как объект, а базовая схема db верна, все должно работать. - person Darren Lewis; 15.08.2010
comment
Да, это снова мой вопрос. Как связать \ связать "shape" объекта на поверхности дизайна edmx с POCO, который я написал от руки? Это просто соответствует именам? - person Beth; 15.08.2010