Сначала я использую C # и EF Database.У меня есть 3 таблицы в базе данных: Building, Attachments и linking table. Содержимое - данные на 200-300 и более мегабайт.
- Здание : [Id], [Имя], [Адрес]
- Вложения : [Id], [... (многие поля, такие как FileName, FileSize и т. Д.)], [ Content ] (varbinary (MAX)) *
- AttLink : [Id], [Build_Id], [File_Id]
Класс Building имеет свойство
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<AttLink> AttLink { get; set; }
Я хочу отобразить всю информацию о вложенияхв сетке для конкретного здания и отредактируйте его, но без поля Content.Атрибут [NotMapped] не подходит.Я завершил класс Building и сделал привязку сетки к своему свойству Att:
private List<Attachments> _Att;
public List<Attachments> Att
{
get
{
if (_Att == null)
{
_Att = AttLink.Select(x => new Attachments() { ID = x.AttLink.Id, ... }).ToList();
}
return _Att;
}
}
Как сказать EF пропустить часть полей для DB-first)?В противном случае происходит ненужная загрузка вложений самого поля «Содержимое».