3

データベース内のテーブルにマップされていないエンティティを作成することはできますか?

5 つのプロパティ (名前、電話番号、電子メール、日付、コメント) を持つエンティティ (A) を作成しました。データベースに A という名前のテーブルがありません。

linq を使用してモデル内の他のテーブルをクエリし、結果を型 (A) のリストに変換しました

IList<A> results = new IList<A>();
results = (from m in B
           where m.Id < 10
           select new { m.name, m.email, m.date, m.phone, m.comment }).ToList();
return View(results)

匿名型をビューに渡さないようにするためにこれを行いました。

4

1 に答える 1

1

まず、変数に何かを割り当てているresultsため、新しいリストを作成する必要はありません。以下が機能します。

IList<A> results;       // No value yet.

Aその後、他の場合と同じようにインスタンス化できます。

results = (from m in B
          where m.Id < 10
          select new A(m.name, m.email, m.date, m.phone, m.comment))
          .ToList();

return View(results)

しかし、あなたの仮定はここで間違っています。あなたは言う:私は結果を型のリストに変換してA、匿名型をビューに渡さないようにしますが、匿名型に関するあなたの考えは正しくありません。

以下は匿名型を作成しません。非常に匿名のIEnumerable<A>orを作成しIQueryable<A>ます。

var results = from m in B
              select new A();

ただし、以下は匿名型を作成します。

var results = from m in B
              select new {
                  Name = m.name,
                  Email = m.email,
                  Date = m.date,
                  Phone = m.phone,
                  Comment = m.comment
              };
于 2013-03-15T15:32:29.970 に答える