1

申し訳ありませんが、これは以前に何度も尋ねられたに違いありませんが、私の質問に対する答えが見つかりません。

Company と Users という 2 つのエンティティ フレームワーク クラスがあります。ユーザーが割り当てられている会社のリストを作成したいと考えています。

public class FIGcompany
 {
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<UserProfile> Users { get; set; }

 }

public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
    public ICollection<FIGcompany> Companies { get; set; }
}

私が使用しているLinqは、次のようになっています。

 var t = db.Companies
            .Any(q => q.Users.Contains(q.Users.

誰かがそれを終わらせるのを手伝ってくれますか? ユーザーから UserId フィールドを取得して比較を行うのに苦労しています。

ありがとう!

4

2 に答える 2

2

このクエリは、少なくとも 1 人のユーザーが割り当てられている会社を返します。

var companiesWithUsers = db.Companies.Where(c => c.Users.Any());

idを持つユーザーがいる会社が必要な場合は、次のようにします。

var companiesForUser = db.Companies.Where(c => c.Users.Any(u => u.UserId == id));
于 2013-05-28T12:51:01.623 に答える
1

UserID を持っているのに、なぜ会社にクエリを実行するのでしょうか?

db.Users.First(user => user.UserId == givenId).Companies;
于 2013-05-28T13:27:38.297 に答える