Использование VS2010, .NET4.0, MVC3, EF4.1 Code-First
У меня есть эти объекты POCO:
public class XBLContent
{
[Key]
[StringLength(36, ErrorMessage="Must have 36 characters")]
[Required(ErrorMessage="Must have a unique GUID")]
public string GUID { get; set; }
public int Price { get; set; }
public float FileSize { get; set; }
public virtual ICollection<XBLRegionalContent> RegionalInfo { get; set; }
public string RelatedGameId { get; set; }
[ForeignKey("RelatedGameId")]
public virtual XBLContent RelatedGame { get; set; }
}
public class XBLRegionalContent
{
[Key, Column(Order = 0)]
public string ContentId { get; set; }
[ForeignKey("ContentId")]
public virtual XBLContent Content { get; set; }
[Key, Column(Order = 1)]
public string RegionId { get; set; }
[ForeignKey("RegionId")]
public virtual XBLRegion Region { get; set; }
public string Name { get; set; }
}
public class XBLRegion
{
[Key]
[StringLength(5, ErrorMessage="ID must have 5 characters")]
[Required]
[RegularExpression(@"[a-z|A-Z]{2}-[A-Z|a-z]{2}")]
public string ID { get; set; }
public string Country { get; set; }
public string Language { get; set; }
}
Отношения:
- Один XBLContent имеет много XBLRegionalContent;
- Один XBLContent может быть связан с другим XBLContent (большинство из них нет);
- Один XBLRegionalContent имеет один XBLContent и один XBLRegion;
- Один XBLRegion имеет много XBLRegionalContent;
Контекст objetc действительно прост:
public class XBLContentContext : DbContext
{
public DbSet<XBLContent> XBLContents { get; set; }
public DbSet<XBLRegionalContent> XBLRegionalInfos { get; set; }
public DbSet<XBLRegion> XBLRegion { get; set; }
public XBLContentContext() : base("XBLToolsDB")
{
}
}
Я использую XBLContent в качестве основного бизнес-объекта, и, возможно, это не лучшая идея. Я думаю, что с архитектурой, которую я спроектировал, что-то не так, потому что у меня проблемы с отправкой информации в представление, фильтрацию, сортировку и т. Д.
Теперь я использую сетку Telerik, и когда я пытаюсь выполнить сортировку по полю свойств навигации, я получаю сообщение об ошибке «Нет свойства или поля». Возможно, мне не следует использовать XBLContent в качестве основного бизнес-объекта или создать ViewModel, содержащую все необходимые поля, и отправить его в View. Или создайте одну единственную сущность, которая разбивается на две таблицы EF (я не знаю, возможно ли это или как этого достичь).
Я просто падаван в .NET и мне нужен совет мастера-джедая.
Мне нужно содержимое, которое может иметь несколько переводов.
Как лучше всего достичь этой цели?