Отображение коллекции строк с помощью Entity Framework или Linq to SQL - PullRequest
2 голосов
/ 02 июля 2010

Я хотел бы знать, возможно ли отобразить отношение базы данных 1-многие в виде массива примитивов в классе родительского объекта.Например, скажем, у меня есть база данных следующим образом:

TABLE: PERSON
    ID - int

TABLE: PERSON_EMAIL_ADDRESSES
    PERSON_ID - int
    EMAIL_ADDRESS - string

Для моего класса Person я хотел бы иметь следующее:

public class Person 
{
    public int ID { get; set; }
    public string[] EmailAddresses { get; set; }
}

Linq для SQL и Entity по умолчаниюПоведение платформы должно было бы дать мне отдельный класс для таблицы PERSON_EMAIL_ADDRESSES и коллекцию этого типа для объекта Person ... что мне не нужно.

Похоже, это можно сделать с помощьюNHibernate, как описано здесь , но есть ли способ сделать это с помощью EF или Linq to SQL?

Заранее спасибо, Уэйн

1 Ответ

1 голос
/ 02 июля 2010

Если вам нужен список только для чтения, как в вашем образце NHibernate, вы должны отобразить как обычно и затем проецировать:

var q = from p in Context.People
        select new Person // Where this is your Person type above, not a mapped entity type
        {
            ID = p.ID, 
            EmailAddresses = from pea in p.EmailAddresses
                             select pea.EmailAddress
        };

Это работает как в L2S, так и в L2E. Если вы хотите читать и писать, то вам нужен идентификатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...