1

私がこれを試してみると:

//IRepository.GetAll<CompanyPerson> returns an IQueriable
//ToObservableList() extension method converts to ObservableCollection
 var tt =
        (from s in container.Resolve<IRepository>().GetAll<Company>()
         join t in container.Resolve<IRepository>().GetAll<Personels>().ToObservableList()
         on s.ID equals t.CompanyID into k
         from subset in k
         select new { s, t = k }).ToList();

私はこの例外を取得します:

Unable to create a constant value of type 'CompanyPerson'. Only primitive types ('such as Int32, String, and Guid') are supported in this context.

そして、私がこれを試してみると:

     var tt =
        (from s in container.Resolve<IRepository>().GetAll<Company>()
         join t in container.Resolve<IRepository>().GetAll<Personels>()
         on s.ID equals t.CompanyID into k
         from subset in k
         select new { s, t = k }).ToList();

または私がこれを試してみると:

(from s in container.Resolve<IRepository>().GetAll<Company>()
             join t in container.Resolve<IRepository>().GetAll<Personels>()
             on s.ID equals t.CompanyID into k
             from subset in k
             select new { s, t = new ObservableCollection<CompanyPerson>(k) }).ToList();

これを取れ:

Only parameterless constructors and initializers are supported in LINQ to Entities.

ToObservableList() 拡張:

public static ObservableCollection<T> ToObservableList<T>(this IEnumerable<T> data)
{
    ObservableCollection<T> dataToReturn = new ObservableCollection<T>();

    foreach (T t in data)
        dataToReturn.Add(t);

    return dataToReturn;
}

例外なく。

なにか提案を?

ありがとう。

4

1 に答える 1

0

はい、複雑な型を使用して比較することはできません(例では t と k )

条件を指定してみてください:

var tt =
    (from s in container.Resolve<IRepository>().GetAll<Company>()
     join t in container.Resolve<IRepository>().GetAll<Personels>().ToObservableList()
     on s.ID equals t.CompanyID into k
     from subset in k
     select new { s, new CompanyPerson() { //here fill all properties from k variable } }).ToList();

また、「Company」および「CompanyPerson」クラスをどのように実装したのだろうか。それらのクラスのソース コードを表示できますか?

于 2012-05-26T16:23:40.807 に答える