我使用entityframework生成的类作为域模型层POCO类 对于每个类,我创建一个PartialClass以包含一些属性或方法。
例如:
namespace APA.Model.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
[MetadataType(typeof(APAProjectMetaData))]
public partial class APAProject : BaseModel<APAProject>
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public APAProject()
{
this.APAProjectComponents = new HashSet<APAProjectComponent>();
this.APARoles = new HashSet<APARole>();
this.APASolutionUser_APAProject = new HashSet<APASolutionUser_APAProject>();
}
public System.Guid ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public System.Guid APAAuthenticationTypeID { get; set; }
public byte[] RowVersion { get; set; }
public virtual APAAuthenticationType APAAuthenticationType { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<APAProjectComponent> APAProjectComponents { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<APARole> APARoles { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<APASolutionUser_APAProject> APASolutionUser_APAProject { get; set; }
}
}
,部分类是:
namespace APA.Model.Models
{
public partial class APAProject : IAggregateRoot
{
[NotMapped]
public string APAAuthenticationTypeName
{
get { return this.APAAuthenticationType.Name; }
}
}
}
我使用以下方法查询数据库:
query.OrderBy("ID").Skip(PageIndex * PageSize).Take(PageSize).AsEnumerable<T>();
其中query
是:IQueryable<T>
并由以下方法启动:
public IQueryable<T> GetQuery()
{
string entityName = GetEntitySetName<T>();
return DataContextFactory.GetDataContext().CreateQuery<T>(entityName);
}
我还设置了:ContextOptions.LazyLoadingEnabled = true;
。
除非我向数据库插入记录并且在提交uow
之后,我尝试运行查询以获取gridview的新数据源,但是部分类属性APAAuthenticationTypeName
的值不会加载对于新插入的记录。
正如您在监视窗口的屏幕截图中看到的那样,新插入的记录是resultView [7],其类型为APA.Model.Models.APAProject
,这与以前不同类型的现有记录不同:System.Data.Entity.DynammicProxies_...
。
我不知道这里发生了什么!
我想知道为什么属性值加载以及如何解决它?
提前致谢