1

私は linq to SQL を使用していますが、2 つの問題があります。

これは私の DBML ファイルからのスナップショットですここに画像の説明を入力

最初のもの:-WFTypeIDプロパティまたはその関係を呼び出すと、WorkflowInstanceテーブルでintが返されますか? フィールドは object ではなく、ApplicationForm テーブルとは異なり、正常に動作します。私はdesigner.csファイルをチェックし、System.Data.Linq.Mapping.ColumnAttributeではなくSystem.Data.Linq.Mapping.AssociationAttributeを定義し続けます。

2番目の問題:-一部のテーブルには1:Nの関係があり、一部のテーブルには1:1の関係があります。リレーションシップを EntityRef または EntitySet として表示するすべてのテーブル。なぜ私に単一のオブジェクトを与えないのですか。またはこれは正常な動作ですか?!

4

2 に答える 2

2

1:LINQ-to-SQLはデュアルAPIを公開します。外部キーは、多くの場合、生の形式オブジェクト形式の両方で表示されます。だから私は完全にまたは同様のものになることを期待します。興味深い質問は次のとおりです。プロパティもありますか?そうでない場合は、関連付けのプロパティを確認することをお勧めします。点線をクリックして、子/親のプロパティを確認し、カーディナリティを確認します。WFTypeIDint?WFType

2: {0 | 1}-*関係のバッキングフィールドは通常ですが、EntityRef<T>-LINQ -to-SQLによって生成されるパブリックAPIはT;だけである必要があります。例えば:

[global::System.Data.Linq.Mapping.AssociationAttribute(Name="AssociationName", Storage="_User", ThisKey="UserId", OtherKey="Id", IsForeignKey=true)]
[global::System.Runtime.Serialization.DataMemberAttribute(Order=7, EmitDefaultValue=false)]
public User User
{
    get
    {
        if ((this.serializing 
                    && (this._User.HasLoadedOrAssignedValue == false)))
        {
            return null;
        }
        return this._User.Entity;
    }
    set
    {
        if ((this._User.Entity != value))
        {
            this.SendPropertyChanging();
            this._User.Entity = value;
            this.SendPropertyChanged("User");
        }
    }
}

ここで、メンバー名は、アソシエーションの「親プロパティ」>「名前」に由来します。

ここに画像の説明を入力してください

_Userであることに注意してくださいEntityRef<User>。ただし、パブリックプロパティUserのタイプはUserです。

于 2013-01-21T07:51:59.650 に答える
0

最初の問題: WFTypeID フィールドは外部キーを表しており、主キーは整数であると思います。整数を返すのは正常です。

2 番目の問題: 関係が 1 対 1 の場合。リレーションの反対側にあるオブジェクトを表す EntityRef オブジェクトを取得します。一方、関係が 1:N の場合は、オブジェクトを表す EntitySet を取得します。これは通常の動作です。1 対多の関係では、1 つのエンティティが単一のオブジェクトではなく、「多数の」エンティティにマップされます。

于 2013-01-21T07:43:05.790 に答える