現在使用していないテキストフィールドを使用してデータに接続してデータを取得しようとする古いサードパーティデータベースがあるため、問題があります。しかし、私はLINQを介してデータを返そうとすると私の問題を引き起こしているので、データベースフィールドを変更することはできません。テキストデータ型を比較できないため、DISTINCTとして選択することはできません
return query.Select(x => new VacancySummary
{
Id = x.Id,
Departments = "",
Location = x.Location,
Company = x.Company,
DateOpened = x.DateOpened,
Notes = x.Notes,
Closed = x.Closed
}).Distinct().Skip(skip).Take(take);
そして、上記の例外を取得:以下のコード例:私は最終的にこれをしようとする前に
var query = from s in db.tSearches
join c in db.tCompanies on s.CompanyGUID equals c.GUID
join cl in db.tCompanyLocations on s.LocationGUID equals cl.GUID
join st in db.tSearchTypes on s.SearchTypeGUID equals st.GUID
where s.DateClosed == null
select new
{
Id = s.GUID,
Type = st.GUID,
Location = cl.LocationName,
Company = (s.Confidential) ? String.Empty : c.CompanyName,
DateOpened = s.DateOpened,
Notes = s.PlacementNotes,
Closed = s.DateClosed != null
};
いくつかのより多くのフィルタリングは、この情報に行われます。私はむしろ、SQL文全体を最初に実行し、その結果を返す前にDistinctを実行する必要はありません。なぜなら、各ユーザが各検索のすべてのレコードを取得した場合、サーバの帯域幅でパフォーマンスが低下するからです。データが返されます。
アイデア?
非推奨の場合、なぜそのフィールドをプルしないのですか? – JNK
@ kh25:そのデータベースにビューを作成できますか? 'text'カラムを' varchar(max) 'に変換し、次にLINQでビューからクエリすることを除いて、' text'カラムを持つテーブルの上にビューを作成することをお勧めします。 –
[EF:text data typeはDISTINCTとして選択できません。これは比較できません](http://stackoverflow.com/questions/8056339/ef-the-text-data-type-cannot-be-selected -as-distinct-because-not-not-comparab) –