0

したがって、Model2 が Model1 にリンクされている 2 つのモデルがあります。

public class Model1 {
    public int model1ID { get; set; }
    public int model2ID { get; set; }
}
public class Model2 {
    public int model2ID { get; set; }
    public int someData { get; set; }
}

私はこれをしたいと思います:

public class Model1 {
    public int model1ID { get; set; }
    public Model2 model2 { get; set; }
}

だから私はこれを行うことができます:

        var linqTest = (
            from curTest in database.Model1s
            select curTest 
        ).Sum(curTest => curTest .model2.someData);

編集:

私の問題は、「model2ID」を使用して「model2」プロパティをロードする方法をc#にどのように伝えるかということです。私が得る特定のエラーは次のとおりです。

{"Invalid column name 'model1_ID'.\r\n Invalid column name 'model1_ID'."}

model1_ID という名前のプロパティがないことに注意してください。

4

1 に答える 1

1

関連付けプロパティを使用したいようです:
Entity Framework 関連付けプロパティ: http://msdn.microsoft.com/en-us/data/jj713564.aspx
Linq to SQL 関連付けプロパティ: http://msdn.microsoft.com/ en-us/library/bb629295.aspx

関連付けプロパティを持つデータ モデルは次のようになります。

public class Model1 
{
    public int model1ID { get; set; }
    public int model2ID { get; set; }
    public virtual Model2 model2 { get; set; }
}

public class Model2
{
    public int model2ID { get; set; }
}

関連付けプロパティを使用したくない場合は、クエリで結合を使用できます。

var linqTest = (
            from mod1 in database.Model1s
            join mod2 in database.Model2s
                on mod1.model2ID equals mod2.model2ID
            select new { Mod1 = mod1, Mod2 = mod2 } 
        ).Sum(row => row.Mod2.someData);

Linq クエリでの結合の詳細については、@nercan が投稿したリンクを確認してください。

于 2013-05-06T16:42:29.757 に答える