Приветствую.
Парочка вопросов насчет EditableObject
[TableName("goods")]
[InheritanceMapping(Code = (int)EntityEnum.Books, Type = typeof(Book))]
[InheritanceMapping(Code = (int)EntityEnum.Video, Type = typeof(Video))]
public abstract class Good : EditableObject<Good>
{
[Identity, PrimaryKey]
[MapField("gid")]
public abstract int GID { get; set; }
[MapField(MapName = "entity_id", IsInheritanceDiscriminator=true)]
public abstract EntityEnum EntityID { get; set; }
[MapField("title_ru")]
public abstract String TitleRu { get; set; }
}
[TableName("books")]
public abstract class Book : Good
{
[MapField("book_pages")]
[Nullable]
public abstract int? Pages { get; set; }
}
[TableName("video")]
public abstract class Video : Good
{
[MapField("video_year")]
public abstract int YearOfVideo { get; set; }
}
1. Наследуемся от Good, то как создать объект нужного типо далее в коде?
На такое:
var video = Video.CreateInstance();
video.YearOfVideo = 2010;
Получаем ошибку:
'EntityModel.Good' does not contain a definition for 'YearOfVideo' and no extension method 'YearOfVideo'
accepting a first argument of type 'EntityModel.Good' could be found (are you missing a using directive or an assembly reference?)
Вопрос. Как создавать объекты правильно? Что бы все было доступно?
2. Как этот объект вставить в базу?
// Хотелось бы как-то так...
db.Goods.Insert(video);