我对现有数据库进行映射存在问题。
2张桌子(简体)

"SomeEntity"
Id int
Name nvarchar


"EntityProperty"
EntityId int
Name nvarchar

从实体到实体的属性有一对多的关系。
如何首先使用ef 4.1代码来映射它?
提前付款。
编辑1:
好)这是我的代码
class Program
    {
        static void Main(string[] args)
        {
            var context = new DataContext();

            var result = context.SomeEntity.Include(p => p.EntityProperties);

            foreach (var entity in result)
            {
                Console.WriteLine(entity);
            }

        }
    }

    public class SomeEntity
    {
        public int EntityId { get; set; }
        public string Name { get; set; }
        public virtual ICollection<EntityProperty> EntityProperties { get; set; }

        public override string ToString()
        {
            return string.Format("Id: {0}, Name: {1}", EntityId, Name);
        }
    }

    public class EntityProperty
    {
        public int EntityId { get; set; }
        public string Name { get; set; }
    }

    public class DataContext : DbContext
    {
        public DbSet<SomeEntity> SomeEntity { get { return this.Set<SomeEntity>(); } }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<SomeEntity>().ToTable("SomeEntity");
            modelBuilder.Entity<SomeEntity>().HasKey(k => k.EntityId);

            modelBuilder.Entity<EntityProperty>().ToTable("EntityProperty");
            modelBuilder.Entity<EntityProperty>().HasKey(k => k.EntityId);
        }
    }

当我为get属性使用include in query时出现问题:
列名“someEntity\u EntityID”无效。
列名“someEntity\u EntityID”无效。

最佳答案

public class SomeEntity
{
    public int SomeEntityId {get;set;}
    public string Name {get;set;}
    public ICollection<EntityProperty> EntityProperties {get;set;}
}

public class EntityProperty
{
    public int EntityPropertyId {get;set;}
    public string Name {get;set;}
}

创建该ICollection(在关系的“1”侧)应足以设置1:n关系。它将在EntityProperty表中创建SomeEntity(或SomeEntityID)列。
编辑:btw:如果您希望启用延迟加载,可以将该集合设置为virtual。
public virtual ICollection<EntityProperty> EntityProperties {get;set}

编辑:
public class SomeEntity
{
    [Key]
    public int Id {get;set;}
    public string Name {get;set;}
}

public class EntityProperty
{
    // What is PK here? Something like:
    [Key]
    public int Id {get;set;}

    // EntityId is FK
    public int EntityId {get;set;}

    // Navigation property
    [ForeignKey("EntityId")]
    public SomeEntity LinkedEntity {get;set;}

    public string Name {get;set;}
}

先试试这个..然后您可以再次添加该icollection,我这次没有包含它以保持它的简单性(而且您仍然是一个查询属性..但是有:context.EntityProperties.Where(x=>x.EntityId == X);

10-07 12:04