フロントエンドに表示されているビジネスレイヤからEFエンティティオブジェクトを戻す既存のアプリケーションを変更するよう依頼されました。いくつかの場所には、OfficeCodeがデータベースに文字列として記録されているレコードがあります。フロントエンドでこれらのレコードの一部のOfficeNameを表示するように求められました。以下は、これらのモデルのスニペットです。エンティティコードの最初のプロパティを別のテーブルにマッピングする
public class Office
{
[Key]
public string OfficeCode { get; set; }
public string OfficeName { get; set; }
// Many more properties
}
public class Note
{
[Key]
public int Id { get; set; }
public string OfficeCode { get; set; } // Not a ForeignKey, I didn't create the database
public string OfficeName { get; set; } // Can we pull this from the Office table?
}
彼らは同じではないので、「オフィス」私はエンティティ分割を使用することができるかもしれないと思ったが、私はエラーメッセージ
エンティティタイプ「オフィス」と「注意」は、テーブルを共有することはできません取得それらの間で一致する主キーとの有効な1対1の外部キー関係を持っていません。
テーブル間にForeignKey関係がない場合、別のテーブルのプロパティを設定する方法はありますか?
誰かが、スタックを大量に再発行せずにNotesにOfficeNameを表示するための洗練された方法を考えることができますか。
私は自分の人生を困難にしようとしていない、私は既存のアプリケーションに直面している。通常はIQueriableからDTOオブジェクトを選択しますが、Entityオブジェクトを水和することはありません。私はちょうどノートとオフィスの関係を作成し、Officeを含めることができますが、私は1つの名前プロパティのために、それぞれのノートにすべて40のプロパティ、複雑なOfficeオブジェクトを添付します。 –