3
我在使用ADO.NET上的導航屬性和繼承時遇到了一些問題。ADO.NET導航屬性
這是我的數據模型:
首先,一些詞彙:
Categoria =類別
Formulario =表單
坎普=字段
IMAGEM =圖片
Paragrafo =段落
Escolha =選擇
Texto =文本
Resposta =回答
所以,我試圖創建一個表單返回它的答案指望一個自定義屬性。
正常的做法(我覺得)是:
public partial class Formulario
{
public int Respostas
{
get
{
List<Item> itens = this.Itens.ToList();
IEnumerable<Campo> campos = from m in itens where m as Campo != null select (Campo)m;
int soma = campos.Sum(m => m.Respostas.Count);
return soma;
}
}
}
但它不工作。 itens
列表返回0個元素。但是,當我做如下,它返回4項應:
public partial class Formulario
{
public int Respostas
{
get
{
FormulariosDB db = new FormulariosDB();
List<Item> itens = db.Items.Where(m => m.Formulario.Id == this.Id).ToList();
IEnumerable<Campo> campos = from m in itens where m as Campo != null select (Campo)m;
int soma = campos.Sum(m => m.Respostas.Count);
return soma;
}
}
}
當我實例化整個數據模型,它纔會起作用。有誰知道爲什麼?
PS:我使用的是.toList()
方法,所以我可以使用所有Linq
查詢,而非僅僅Linq2Entities
讓我
但我延長實體框架創建的Formulario類。由於該屬性在對象被實例化時已被隱藏,因此我假設內置的Navigation屬性將起作用。但它不:/ – 2010-11-18 14:23:12
@羅德里戈 - 我現在明白了......我會更新。 – 2010-11-18 14:24:19
賓果!現在工作正常。謝謝! – 2010-11-18 14:30:54