0

複数のテーブルを持つマルチクライアントDB(マルチテナント)があります。これらのテーブルのうちの2つはとtblEmployeesですtblTitles。今、私はからtblEmployees.empTitleへの関係を持っていtblTitles.ttlIDます。

これまでのところ、すべてが機能しています。しかし今、私は複数のクライアント/テナントのためにアプリケーションを作成する必要があります。そこで、フィールドを追加してtblEmployees.empClienttblTitles.ttlClientそれらを関連付けに含めました。

これは、読書や人物のタイトルの設定にも問題なく機能します。しかし、タイトルを削除しようとすると(に設定するとNULL)、SQL to Linqは両方を変更しようとしますが、は主キーの一部であるためtblEmployees.empTitletblEmployees.empClientwithは許可されていません。tblEmployees.empClientそのため、次のエラーが発生します。

InvalidOperationException:
An attempt was made to remove a relationship between a AppTitle and a AppEmployee.
However, one of the relationship's foreign keys (AppEmployee.clientID, AppEmployee.titleID) cannot be set to null.

フィールドを変更するためだけにSQLをLinqに指示するにはどうすればよいですtblEmployees.empTitleか?

4

1 に答える 1

0

他の人と同じように問題を解決しました。LinqToSQLに、clientIDは主キーの一部ではないと考えさせ、関連付けから削除しました。ただし、データベースを変更しなかったため、データベースは同じクライアント/テナントのタイトルを使用するように強制します。

于 2012-04-12T06:31:42.993 に答える