1

ごめん。これ以上のタイトルが思いつきませんでした。これが私のジレンマです。以下の私のSQLテーブル:

create table MainTable (UserId,somefields);
create table SecondaryTable(pkid, somefields, UserId,CreatedBy,UpdatedBy);

UserId、CreatedBy、UpdatedBy は MainTable(UserId) を参照する外部キーです。私のlinqクエリの一部として、私は定期的に(間違って)次のようなことをします

dbContext.SecondaryTable.Where(r=>r.MainTable.someOtherChainingHere)

要点は、Linq が可能なフィールドの中から最適な一致を自動的に選択すると常に (間違って) 想定していたことです。UserId は共通フィールドなので、それを参照すると思っていました。そうではありません。私はアルファベット順で行くようです。つまり、Visual Studio Intellisense で

dbContext.SecondaryTable.Where(r=>r.

可能なオプションとして MainTable,MainTable1,MainTable2 が表示されます。この 3 つの中から適切なものを選ぶにはどうすればよいでしょうか???? もっとはっきりしていない場合はお詫び申し上げます。

4

1 に答える 1

0

私が行った方法は、部分クラスを使用して、次のような「プログラマーのわかりやすい名前」を追加することです。

public partial class secondarytable
    {

        public maintable createdByUser{
            get
            {
                return this._maintable1.Entity;
            }
            set
            {
                this._maintable1= value;
            }
        }

残りの参考文献など。

DBML を手動で変更しないことを選択したので、いつでも最初から再作成できます。

DBML と外部キーの定義を変更するときは、1、2、3 がまだ正しいテーブルを参照していることに注意する必要があります。

ところで良い質問です。より良いオプションを知りたいです!

于 2012-11-17T07:40:11.900 に答える