私はファイアバードデータベースの上に構築された既存のプログラム用のインターフェイスを構築しています。私はfirebird用のデータプロバイダを使用していくつかのモデルを生成しましたが、私はプログラムを壊すことなく変更することができない奇妙な構造を持ついくつかのテーブルの関係を定義しようとしています。MVC Entity Framework - 1つのフィールド内の複数のテーブルからの外部キー
これは、現在の構造を煮詰めている:
public partial class JOBLINE
{
[Key, Column(Order = 0)]
public int JobNumber {get;set;}
[Key, Column(Order = 1)]
public int LineNumber {get;set;}
public string LineType {get;set;} // can be either 'Item Code' or 'Descriptor Code'
public string LineCode {get;set;}
}
public partial class ITEMMASTER
{
[Key]
public string ItemCode {get;set;}
// The other properties
}
public partial class DESCRIPTORMASTER
{
[Key]
public string DescriptorCode {get;set;}
// The other properties
}
とても迷惑なことjobline
テーブルで、LineCode
フィールドは何CodeType
分野に応じて、ItemMaster
またはDescriptorMaster
のいずれかの外部キーを含めることができるということです含まれています。
これを指定する簡単な方法はありますか?流暢なAPIまたはデータ注釈を使用する。私はItemMaster
とDescriptorMaster
のテーブルのリストのアクセサを持つように願ってい
ありがとうございました。関係の指定はどのように扱いますか? –
relashionshipを追加する必要はありません。unique制約は、結合された列に挿入されるデータについてのガードと考えてください。私が答えて言ったように、あなたは共有列で行う必要があるように、3つのテーブルの間にrelashionshipを作成することはできません。それは不可能だ。 – CodeNotFound
Dang。ああ、助けてくれてありがとう –