1

Entity Framework Model Generator によって生成されたDocumentオブジェクトとUserオブジェクトがあります。

Documentリストと、この Document に従って作成されたuserCountを取得したい。

だから、私は新しいオブジェクトDocumentWithUserCountを作成しました:

public class DocumentWithUserCount:Document
{
    public uAmount {get;set}
}

そしてデータを保持するためのLINQ(コードの下で、私はあなたの助けが必要です):

    var ed = (from d in _entity.Document
     join p in _entity.User[get DocID and count by this docID ] on d.RID equals p.DocID         
select new DocumentWithUserCount(xxxx)).ToList();

これを行う方法?

編集: 単純に、LINQ を使用して以下の同等のコードを実行したいだけです。

    SELECT d.*, p.* from Document d INNER JOIN (select docid, count(RID) as uAmount from User
    GROUP BY DocID) p ON d.RID=p.docid
4

2 に答える 2

1

これは機能しませんか?

var documentWithUserCount =
    from Document d in _entity.Document
    join p in _entity.User on d.RID equals p.DocID
    select new DocumentWithUserCount(d, p.Count());

次のように DocumentWithUserCount にコンストラクターを追加します。

public DocumentWithUserCount(Document doc, int count) : base(d)
{
    uAmount = count;
}

Document を受け取り、適切なプロパティを設定するコンストラクターを Document に追加します。

于 2012-07-18T13:04:50.553 に答える
1

ここでは、継承は間違ったツールだと思います。代わりにコンポジションを使用してください。また、結合が必要かどうかも明確ではありません。ナビゲーション プロパティが必要です。

var eds = from d in _entity.Document       
   select new { Document=d, UserCount=d.Users.Count() };  // anon type

また

public class DocumentWithUserCount  //:Document
{
    public Doucument { get; set; }
    public int Amount {get;set}
}
var eds = from d in _entity.Document       
   select new DocumentWithUserCount { Document=d, Amount=d.Users.Count() };
于 2012-07-18T13:57:21.717 に答える