Предположим, у меня есть объект Entity Object 'Jewels', который имеет свойства 'Name' и 'Birthdate'. Я хочу реализовать запрос LINQ, который возвращает объект с именами «Name», «Birthdate» и «Birthstone». Поэтому я выражаю «Jewels», как это:Расширить объект Entity, чтобы включить рассчитанное свойство
public partial class JewelStones : Jewels
string Birthstone = null;
public void JewelsWithStone()
{
this.Birthstone = "diamond";
//(we figure out what stone applies to the month here)
}
я могу получить это далеко, и я думаю, что я нахожусь на правильном пути, но я не знаю, как написать запрос LINQ и получить обратно объект который включает Birthstone, поэтому я могу привязать этот объект к сетке, которая покажет Birthstone, который я нигде не храню, поскольку он всегда вычисляется (это притворные данные, извините, если это не логично).
List<Jewel> jewels = new List<Jewel>;
using (jewelentities db = new jewelentities())
{
jewels = (from j in db.Jewels select j).ToList();
}
Как заполнить мой объект JewelStone с помощью имени, даты рождения и каменного камня?
Если я не следую лучшей практике здесь, пожалуйста, дайте мне знать!
EDIT
Я попытался добавить частичный класс частичного класса Entity. Когда я ссылаюсь на класс Jewel, он «видит» свойство Birthstone, но он равен нулю. Я не знаю почему? Вот частичный класс:
public partial class Jewel
{
private string _birthstone;
public string Birthstone
{
get { return _birthstone; }
set
{
JewelBusiness jewelBusiness = new JewelBusiness();
_birthstone = jewelBusiness.RequestBirthstone(birthmonth);
}
}
}
Если я использую LINQ для запроса объекта, чтобы получить список Jewel записей, я получаю всю информацию от объекта, Jewel.Birthstone есть, но оно равно нуль. Однако, если я делаю Еогеасп на результаты ---
foreach (Jewel j in jewels)
{
string stone = jewelBusiness.RequestBirthstone(j.Birthmonth);
}
камень будет равен ожидаемый результат (Birthstone для этого месяца).
Почему мой неполный класс не возвращает камень?
Проверьте мой обновленный ответ –
я думаю, изменение метода GET имущества и проверки, если поле имеет нулевое значение, это путь. но помните, что вы не можете использовать расширенные свойства для своих сущностей в запросе сущностной работы, поэтому сначала вы должны использовать toList, а затем запросить расширенное свойство. –