2015-10-11 15 views
6

tôi có loại phức tạp cho các lĩnh vực Kiểm toánEF-Code đầu tiên sở hữu phím điều hướng nước ngoài tại phức tạp kiểu

loại phức tạp của tôi:

[ComplexType] 
public class AuditData { 
    [Column("CreatorUserId")] 
    public int? CreatorUserId { get; set; } 
    public DateTime? CreationTime { get; set; } 
    [Column("ModifierUserId")] 
    public int? ModifierUserId { get; set; } 
    public DateTime? ModificationTime { get; set; } 
} 

Entity cơ sở của tôi (tất cả khác inherti này) có tài sản AuditData:

public abstract class Entity : IEntity, IAuditedEntity, INotifiedDbContextBeforeSave 
{ 

    // Summary: 
    //  Unique identifier for this entity. 
    public int Id { get; set; } 
    public bool IsActive { get; set; } 
    public int Old_Id { get; set; } 
    public string Old_TableName { get; set; }   
    [Timestamp] 
    public byte[] RowVersion { get; set; }   
    public AuditData AuditData { get; set; } 
    // can this 2 lines below work as navigation property with foreign key in complex type 
    public virtual User CreatorUser { get; set; } 
    public virtual User ModifierUser { get; set; } 

    //... other fields 
} 

Tôi có 2 thuộc tính điều hướng CreatorUser and ModifierUser. Tôi biết bạn không thể có bất động sản chuyển hướng trong complexType nhưng có thể sở hữu chuyển hướng của tôi về thực thể được ánh xạ với khóa ngoại trong complexType

cái gì đó như:

[ForeignKey("CreatorUserId")] // --> should point to AuditData.CreatorUserId 
    public virtual User CreatorUser { get; set; } 

becouse CreatorUserId sẽ được sở hữu trong mỗi thực thể nhưng EF không phải là ý thức về nó. Mybe có giải pháp trong API thông thạo?

Trả lời

3

Các official documentation nói:

loại Complex là tài sản phi vô hướng của loại thực thể cho phép tính vô hướng được tổ chức trong các đơn vị. Giống như các thực thể, các kiểu phức tạp bao gồm các thuộc tính vô hướng hoặc các thuộc tính kiểu phức tạp khác. Vì các kiểu phức tạp không có khóa, các đối tượng kiểu phức tạp không thể được quản lý bởi khung Entity ngoài đối tượng cha.

Sau đó các loại phức tạp không thể tham gia vào bất kỳ mối quan hệ nào giữa các thực thể, vì vậy chúng không thể chứa khóa ngoài

Các vấn đề liên quan