У меня есть пользовательский класс Date
, который обертывает объект DateTime
, чтобы выставить только часть даты.EF с классом non-POCO
Я пытаюсь включить его в сущности, но получаю исключение:
error 3004: Problem in mapping fragments starting at line 6:No
mapping specified for properties Goal.Date in Set Goal.\r\nAn Entity with Key
(PK) will not round-trip when:\r\n Entity is type [EFCodeFirstSandbox.Goal]
Что дает? Как я могу заставить свой пользовательский класс играть хорошо в мире EF?
Вот упрощенная вниз версия пользовательского класса Date
:
public class Date
{
private DateTime value;
public Date(DateTime date)
{
this.value = date.Date;
}
public static implicit operator Date(DateTime date)
{
return new Date(date);
}
public static implicit operator DateTime(Date date)
{
return date.value;
}
}
Entity класс с использованием Date
:
public class Goal
{
[Key]
public Guid Id { get; set; }
public Date Date { get; set; }
public int Amount { get; set; }
}
EDIT: Этот Date
класс используется только в иллюстративных целях. Мне интересно знать, как сопоставить пользовательские, не-POCO-классы, а не как представлять дату в SQL. :)
Можете ли вы указать мне на все, что расскажет мне больше о создании вычисленного имущества? – FOO
создать другое свойство в вашем классе Goal, возвращает тип Date и просто вычисляет его из свойства DateTime. Отметьте свойство Date атрибутом [NotMapped] или отметьте его не сопоставленным везде, где вы объявляете свои сопоставления, ключи и отношения и т. Д. – Excommunicated
@Chris См. Мое редактирование. –