場所の特別な兆候と呼ばれる1つの以上のテーブルがあります。格納されたロケーションIDと特殊記号をペアにします。変数SpecialSignsLocationに結果を作成し、以下を得ることが必要である:
public IEnumerable<KeyValuePair<int, int>> SpecialSignsLocation = new List<KeyValuePair<int, int>>();
//json result
...
SpecialSigns: {
BodyType: [1, 2],
Hair: [3, 1, 2],
SpecialSignsLocation: [[1,2], [3,5], [4,1]]
}
...
//query
SpecialSignsLocation = entity.persons_signs_location
.Where(c => c.PersonId == persons.Id)
.Select(s => new { s.Location, s.Sign})
.ToDictionary(l => l.Location, l => l.Sign)
私は要求を書いたが、私は例外を飛ぶ:エンティティへ
式のLINQは、法制度を認識しません。コレクション.Generic.Dictionary
Persons、PersonsSignsHair、PersonsSignsBodyTypeの3つのテーブルがあります。一人が特別な看板がたくさん持っていることがあります。クエリの後
public List<object> GetPerson(int id)
{
var query = (from persons in entity.persons where persons.Id.Equals(id)
join signs_body_type in entity.persons_signs_body_type
on persons.Id equals signs_body_type.PersonId into _signs_body_type
from signs_body_type in _signs_body_type.DefaultIfEmpty()
join signs_hair in entity.persons_signs_hair
on persons.Id equals signs_hair.PersonId into _signs_hair
from signs_hair in _signs_hair.DefaultIfEmpty()
select new Person
{
PersonName = persons.PersonName,
PersonLastName = persons.PersonLastName,
PersonPatronymic = persons.PersonPatronymic,
SpecialSigns = new PersonSpecialSigns()
{
BodyType = _signs_body_type.Select(c => c.PersonBodyType),
Hair = _signs_hair.Select(h => h.PersonHair)
}
});
return query.ToList<object>();
}
を、結果をJSONに変換されます。出力は、私は次の結果を期待します:
[
{
SpecialSigns: {
BodyType: [1, 2],
Hair: [3, 1, 2]
},
PersonName: "Aaa",
PersonLastName: "Bbb",
PersonPatronymic: "Ccc",
},
]
代わりに結果は6回複製されます。
[
{
SpecialSigns: {
BodyType: [1, 2],
Hair: [3, 1, 2]
},
PersonName: "Aaa",
PersonLastName: "Bbb",
PersonPatronymic: "Ccc",
},
{
SpecialSigns: {
BodyType: [1, 2],
Hair: [3, 1, 2]
},
PersonName: "Aaa",
PersonLastName: "Bbb",
PersonPatronymic: "Ccc"
},
{
SpecialSigns: {
BodyType: [1, 2],
Hair: [3, 1, 2]
},
PersonName: "Aaa",
PersonLastName: "Bbb",
PersonPatronymic: "Ccc"
},
{
SpecialSigns: {
BodyType: [1, 2],
Hair: [3, 1, 2]
},
PersonName: "Aaa",
PersonLastName: "Bbb",
PersonPatronymic: "Ccc"
},
{
SpecialSigns: {
BodyType: [1, 2],
Hair: [3, 1, 2]
},
PersonName: "Aaa",
PersonLastName: "Bbb",
PersonPatronymic: "Ccc"
},
{
SpecialSigns: {
BodyType: [1, 2],
Hair: [3, 1, 2]
},
PersonName: "Aaa",
PersonLastName: "Bbb",
PersonPatronymic: "Ccc"
}
]
質問:はどのように私は特別な識別子を組み合わせてください、そして配列にそれらをもたらすのだろうか?
のような関連するエンティティを持つ人を読み込むことができ
をあなたも取得結果を記載してください。 – wdosanjos
@ wdosanjos私は彼が十分にはっきりしていたと思います:*結果は6回複製されます* – meJustAndrew
あなたは 'FirstOrDefault()'を行うことができるレコードを1つだけ持っていれば –