找不到源类型的查询模式的实现。找不到加入

时间:2018-11-03 17:43:15

标签: entity-framework

我不知道我是否做对了。我有2个表格Property和PropertyTypes。每个属性都有1个PropertyType。我正在使用外键约束。但是在创建控制器时,我已经收到此错误: “找不到源类型'DbSet'的查询模式的实现。'找不到连接'

请在下面查看我的代码:

[Table("Property.Property")]
    public class Property
    {
        [Key]
        public int          PropertyId { get; set; }
        [StringLength(50)]
        public string       PropertyName { get; set; }
        public int?         Owner { get; set; }
        public string       Cluster { get; set; }
        public string       PropertyNumber { get; set; }
        public string       RegionCode { get; set; }
        public string       ProvinceCode { get; set; }
        public string       MunicipalCode { get; set; }
        public string       BarangayCode { get; set; }
        public DateTime?    DateAdded { get; set; }
        public DateTime?    DateModified { get; set; }

        public int          PropertyTypeId { get; set; }
        public PropertyType PropertyType { get; set; }

        [NotMapped]
        public string Type { get; set; }
    }

    [Table("Property.Types")]
    public class PropertyType
    {
        [Key]
        public int PropertyTypeId { get; set; }
        [StringLength(50)]
        public string Type { get; set; }
        public DateTime? DateAdded { get; set; }
        public DateTime? DateModified { get; set; }

        public List<Property> Properties { get; set; }
    }

 public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false) {}

        // DB Sets
        public DbSet<Property> Properties { get; set; }
        public DbSet<PropertyType> PropertyTypes { get; set; }
    }

控制器

public class PropertyController : ApiController
    {
        [HttpGet]
        [Authorize]
        [Route("api/getproperties")]
        public async Task<List<Property>> GetProperties()
        {
            using(var db = new ApplicationDbContext())
            {
                var properties = await (from p in db.Properties
                                        join pt in db.PropertyTypes
                                        on p.PropertyTypeId equals pt.PropertyTypeId
                                            select new
                                            {
                                                PropertyId = p.PropertyId,
                                                PropertyName = p.PropertyName,
                                                Owner = p.ProertyOwner,
                                                Cluster = p.Cluster,
                                                PropertyNumber = p.PropertyNumber,
                                                RegionCode = p.RegionCode,
                                                ProvinceCode = p.ProvinceCode,
                                                MunicipalCode = p.MunicipalCode,
                                                BarangayCode = p.BarangayCode,
                                                DateAdded = p.DateAdded,
                                                DateModified = p.DateModified,
                                                PropertyTypeId = p.PropertyTypeId,
                                                type = pt.Type
                                            }
                                        ).ToListAsync();
                return properties;
            }

        }
    }

enter image description here

您能告诉我正确的方法吗?谢谢。

0 个答案:

没有答案