匿名クラスはC#で読み取り専用のプロパティを持っています。これは、データベースから特定の値を取得するためにlinq selectクエリで宣言するためによく使用されます。 私のコードでは、次のようなクエリがあります。新しい文を使用して、匿名クラスの新しいオブジェクトを選択するのを混乱させるものです。モデルクラスはStudentClerkshipsLogModel
でした。モデル名を使用すると、照会結果で編集が可能になります。匿名型とユーザー定義型のLINQ選択クエリ
var query = (from entity in _tblStudentClerkshipsLog.GetQueryable()
where entity.StudentID == intStudentID
select new StudentClerkshipsLogModel
{
StudentClerkshipID = entity.StudentClerkshipID,
StudentID = entity.StudentID,
ClerkshipID = entity.ClerkshipID,
}).ToList();
私はselect
文でnew
後のタイプについては言及しなかったとき、私は終了することができません。コンパイラはエラーを発生させます。無名のオブジェクトは読み取り専用です。
var query = (from entity in _tblStudentClerkshipsLog.GetQueryable()
where entity.StudentID == intStudentID
select new
{
StudentClerkshipID = entity.StudentClerkshipID,
StudentID = entity.StudentID,
ClerkshipID = entity.ClerkshipID,
}).ToList()
私の質問は、linqが約2つのクエリを別々にバインドする方法です。どちらのクエリも動的バインディングを持っているか、最初は静的です。
おかげ
「私は終了できません」とはどういう意味ですか?コンパイラはどのようなコードについて不平を言っていますか? (私はそれがあなたが示したコードだとは思っていません。)後でオブジェクトを修正しようとしていますか?その場合は、コードを表示してください。 –
後でコードを修正したいのですが、選択クエリの違いを知る必要があるので、より良い選択をすることができます。 –
@JonSkeet:それはタイプミスのようです。 "私は*編集できません*"。 – Dennis