Entity Framework によって生成された DAL に Entity(EF) があります。
public partial class User : IUser
{
public Guid Id { get; set; }
[Required]
[StringLength(20)]
public string Login { get; set; }
[Required]
[StringLength(25)]
public string Password { get; set; }
[Required]
[StringLength(50)]
public string Email { get; set; }
[StringLength(30)]
public string Lastname { get; set; }
[StringLength(30)]
public string Firstname { get; set; }
[StringLength(200)]
public string Avatar { get; set; }
public Guid? DepartmentId { get; set; }
public Guid? RoleId { get; set; }
public virtual Department Department { get; set; }
public virtual Role Role { get; set; }
}
BLL で UserDto を作成しました
public class UserDto : IUser
{
public Guid Id { get; set; }
public string Login { get; set; }
public string Password { get; set; }
public string Email { get; set; }
public string Lastname { get; set; }
public string Firstname { get; set; }
public string Avatar { get; set; }
public DepartmentDto Department { get; set; }
public RoleDto Role { get; set; }
public Guid? DepartmentId { get; set; }
public Guid? RoleId { get; set; }
}
DAL と BLL の間でデータを転送するには、Contract(Interface) を使用しています
public interface IUser
{
Guid Id { get; set; }
string Login { get; set; }
string Password { get; set; }
string Email { get; set; }
string Lastname { get; set; }
string Firstname { get; set; }
string Avatar { get; set; }
}
この場合、DAL と BLL の間でナビゲーション フィールドを転送するにはどうすればよいでしょうか。このような:
public virtual Department Department { get; set; }
public virtual Role Role { get; set; }
より良い方法:
コントラクト (インターフェイス) を削除し、ユーザー (EF) を BLL に直接転送するか、この問題を解決するための解決策をアドバイスしてください。アーキテクチャの観点から契約(インターフェース)を削除するのは正しいですか?