0

適切な外部キーが設定されていないデータベースがあります。現在、このデータベースを使用して edmx を生成しています。必要なのは、ナビゲーション プロパティを設定して、対応する詳細を他のテーブルから取得できるようにすることです。これがまさに私たちが探しているものの例です。

テーブルEmployeeとDepartmentがあるとしましょう。現在、データベースにはこれらのテーブル間に関係はありませんが、Employee には Department テーブルから取得された DepartmentId があります。

Employee を取得すると、DepartmentID のみが取得されますが、Department テーブルに格納されている「DepartMentName」、「Location」などの情報を取得できるように、Department もプロパティとして取得する必要があります。

EDMX ファイルに Navigation プロパティを追加しようとしましたが、失敗し、関係に関連するエラーが発生し続けます。

助けてください

4

1 に答える 1

4

このようなもので行くことができます。Employee と Department のラッパー クラスを作成します。

public class EmpDept
{
public Employee Employee {get; set;}
public Department Department {get; set;}
}

public IEnumberable<EmpDept> GetEmployeesWithDeptpartment()
{        
    var result = from e in context.Employee
                 where e.Id == somevalue
                 select new EmpDept()
                        {
                            Employee = e,
                            Department = context.Department.Where(d => d.Id == e.DepartmentId)
                        };
    return result.ToList();
}

これは余分なクラスがあることを意味しますが、すばやく簡単にコーディングでき、簡単に拡張でき、再利用可能で、タイプ セーフです。

お役に立てれば

于 2013-10-04T05:18:47.170 に答える