Класс записи развязочной таблицы

При создании каждой развязочной таблицы генерируется класс записи развязочной таблицы. Его исходным описанием служит название развязочной таблицы (Name), а списком его свойств – соответствующие свойства развязочной таблицы .

Например, рассмотрим создание простой развязочной таблицы LinkTableName со свойствами ReferenceID, AnotherReferenceID и Value.

Класс модели предметной области, сгенерированный по этому описанию, выглядит следующим образом:

public partial class LinkTableName : ILinkTableRecord

{

 public long ReferenceID { get; set; }

 public long AnotherReferenceID { get; set; }

 public decimal Value { get; set; }

}

Все классы записей развязочных таблиц реализуют интерфейс ILinkTableRecord. Соответственно можно получить перечень всех классов записей рзвязочных таблиц, запросив кто реализует этот интерфейс:

public interface ILinkTableRecord : IEntity

{

}

Каждому свойству записи развязочной таблицы соответствует поле типа EditableValue<T>, где Т – один из указанных в метаданных типов.

Пример использования:

[Import]

private ITableSourse DataContext { get; set; }

 

var reference = 10;

var anotherReference = 11;

 

var query =

 from linktable in DataContext.GetTable<LinkTableName>()

 where

         linktable.ReferenceID == reference &&

         linktable.AnotherReferenceID == anotherReference

 select linktable.Value;

 

return query.Single();