2013-05-29 2 views
0

У меня есть таблица SQL сервера, связанная с классом через атрибут Linq:Повторного использование класса таблицы LinQ при выборе из поля зрения

[Table(Name = "MyItems")] 
public class MyItems 
{ 
    ... 
} 

Table<MyItems> linqMyItems = db.GetTable<MyItems>(); 
IQueryable<MyItems> itmList = (
    from itm in linqMyItems 
    select itm); 

Это прекрасно работает, когда мне нужно запросить в этой таблице и обновлять свои элементы. Но теперь я хотел бы повторно использовать этот класс, когда я выбираю данные из представления базы данных ItemsFiltered, который содержит точно такой же набор полей. В принципе, я в порядке с объектом только для чтения, но если linq волшебным образом свяжет набор полей, полученный из представления, в фактическую связанную таблицу, тем самым делая возможным обновление объекта, я бы не возражал.

ответ

0

Просто используйте heredety

public abstract class MyItemsBase 
{ 
    /* Define everything here */ 
} 

[Table(Name = "MyItems")] 
public class TableMyItems : MyItemsBase { } 

[Table(Name = "ItemsFiltered")] 
public class ViewMyItems : MyItemsBase { } 
+0

Я получаю сообщение об ошибке, не знаю, как это исправить: InvalidOperationException: член данных «Int32 itmID» типа «UserQuery + MyItemsBase» не является частью отображения для типа «ItemsFiltered» , Является ли элемент выше корня иерархии наследования? – Passiday

Смежные вопросы