当我使用POCO连接将LINQPad连接到我的自定义程序集时,我错过了一些实体。这是一个项目交给我,所以我不确定究竟是什么导致了这一点。
这是我在LINQPad中看到的我的FooContext,
这是我的项目模型,
这是一个未在LINQPad中显示的表,
[Table("People")]
public class Person : DomainEntity
{
[Required, StringLength(50)]
public String GivenName { get; set; }
[Required, StringLength(50)]
public String Surname { get; set; }
public virtual ICollection<EmailAddress> EmailAddresses { get; set; }
public virtual ICollection<Phone> Phones { get; set; }
public virtual ICollection<PhysicalAddress> PhysicalAddresses { get; set; }
public virtual ICollection<Login> Logins { get; set; }
public virtual ICollection<CompanyContact> CompanyContacts { get; set; }
}
这是一张表,
[Table("Tags")]
public class Tag
{
public int Id { get; set; }
public String Value { get; set; }
public virtual DomainEntity Entity { get; set; }
}
什么决定了LINQPad为FooContext显示的内容?
答案 0 :(得分:1)
LINQPad使用以下逻辑来确定在Schema Explorer中显示哪些实体:
System.Data.Entity.Infrastructure.IObjectContextAdapter adapter = this;
var items = adapter.ObjectContext.MetadataWorkspace.GetItems (DataSpace.CSpace);
var container = (EntityContainer) items.First (i => i.BuiltInTypeKind == BuiltInTypeKind.EntityContainer);
var entities = container.BaseEntitySets.Where (b => b.BuiltInTypeKind == BuiltInTypeKind.EntitySet && b.ElementType != null && b.ElementType is EntityType);
entities.Dump(1);
当您在LINQPad中运行此代码并且选择了自定义POCO数据上下文时,您的表是否会显示?