EF6 Lazy加载类属性(字符串)

时间:2018-04-19 13:19:57

标签: c# entity-framework-6

我使用EF6的流畅API配置来管理我的域/数据映射。

在我的一个类中,我想添加两个包含签名的base64图像的大字符串属性。这存在于域和数据库中。

但是,我想忽略这两个字段,直到我需要它们。不要完全忽略(这很容易),但特别是懒得加载这两个字符串属性。

我可以这样做吗?#34;本地"通过EF6配置,还是我必须手动处理这两个字段?

一些好的衡量标准(如果没有它,感觉不是真正的问题......)

class Session {

    public int ID { get; set; }
    public int CaseID {get;set;}
    public int ProviderID {get;set;}
    public int ServiceID {get;set;}

    public DateTime Start {get;set;}
    public DateTime End {get;set;}

    // lazy load these two fields??
    public string ParentSignatureBase64 {get;set;}
    public string ProviderSignatureBase64 {get;set;}

    public virtual Case Case {get;set;}
    public virtual Provider Provider {get;set;}
    public virtual Service Service {get;set;}
}

CREATE TABLE dbo.Sessions (
    ID INT NOT NULL PRIMARY KEY CLUSTERED IDENTITY(1, 1),
    CaseID INT NOT NULL REFERENCES dbo.Cases (ID) ON UPDATE CASCADE ON DELETE CASCADE,
    ProviderID INT NOT NULL REFERENCES dbo.Providers (ID) ON UPDATE CASCADE ON DELETE CASCADE,
    ServiceID INT NOT NULL REFERENCES dbo.Services (ID) ON UPDATE CASCADE ON DELETE NO ACTION,

    SessionStartDate DATETIME2 NOT NULL,
    SessionEndDate DATETIME2 NOT NULL,

    SessionParentSignatureBase64 NVARCHAR(MAX),
    SessionProviderSignatureBase64 NVARCHAR(MAX)
);



var s = modelBuilder.Entity<Session>();
s.Property(x => x.Start).HasColumnName("SessionStartDate");
s.Property(x => x.End).HasColumnName("SessionEndDate");
s.Property(x => x.ParentSignatureBase64)
    .HasColumnName("SessionParentSignatureBase64")
    .LazyLoad()   <-------- LIKE THIS??!?!?
s.Property(x => x.ProviderSignatureBase64)
    .HasColumnName("SessionProviderSignatureBase64")
    .LazyLoad()   <-------- LIKE THIS??!?!?

0 个答案:

没有答案