У меня есть эти простые сущности из таблиц БД
Но я хочу, чтобы мои классы POCO были просто двумя классами:
public class Country
{
public string ID { get; set; }
public string Name { get; set; }
public string LocalName { get; set; } // this localized
public string Region { get; set; }
public IEnumerable<City> Cities { get; set; }
}
public class City
{
public int ID { get; set; }
public string CountryID { get; set; }
public string Name { get; set; } //this localized
public double? Longitude { get; set; }
public double? Latitude { get; set; }
}
Тогда яхочу, чтобы локализованные свойства "LocalName
для Country
и Name
для City
" были заполнены моим контекстом.
Так как сопоставить эти сущности с классами POCO?
И есть ли лучший способ сделать это?
Или я должен сделать ручное преобразование из сущностей в мою модель и добавить еще один уровень?
Пожалуйста, помогите мне принять решение.
.
: Дополнительная информация:
Я сделал ObjectContext
на сделкус моим POCO, но когда я пытаюсь заполнить свое Дополнительное свойство "LocalName
" в репозитории, я получаю эту ошибку:
The entity or complex type 'Site.Country' cannot be constructed
в запросе LINQ to Entities.
и это метод в моем репозитории:
public IQueryable<Country> GetCountries()
{
return from country in context.Countries
join countryCul in context.CountriesCultures
on country.Code equals countryCul.CountryID
where countryCul.LangID == "en"
select new Country
{
Code = country.Code,
LocalName = countryCul.LocalName,
Name = country.Name,
Region = country.Region,
};
}
Я не знаю, как заполнить свойство "LocalName
" в операторе linq