将导航属性添加到普通对象

时间:2014-09-02 15:45:10

标签: c# entity-framework asp.net-web-api

所以我在我的应用程序中有一个看起来像的视图模型:

public class CountryVM
    {
        [Key]
        public int CountryID { get; set; }

        [ForeignKey("Country_CountryID")]
        public virtual ICollection<OrganisationVM> Organisations { get; set; }

        public CountryVM(Country country)
        {
            if (country == null) return;

            this.CountryID = country.CountryID;
        }
    }

这是由班级播种的:

public class Country
    {
        [Key]
        public int CountryID { get; set; }

        public virtual ICollection<Organisation> Organisations { get; set; }
    }

其他相关课程是:

public class Organisation
{
    [Key]
    public int OrganisationId { get; set; }

    [Required]
    public virtual Country Country { get; set; }
}

public class OrganisationVM
{
    [Key]
    public int OrganisationId { get; set; }

    [ForeignKey("Country_CountryID")]
    public virtual CountryVM Country { get; set; }
    public int? Country_CountryID { get; set; }
}

现在OrganisationCountry是我的数据库中的表,OrganisationVM是一个视图。 CountryVM仅存在于应用程序中,目前EF尝试在我的数据库“dbo.CountryVMs”中创建表。

有没有像这样挂钩所以我可以在CountryVM中使用导航属性而不创建表格?

我想这样做的原因是:

我现在在web.api控制器中有这个代码:

// GET: odata/Country
        [EnableQuery]
        public IQueryable<CountryVM> Get()
        {
            var a = db.Countries.ToList().Select<Country, CountryVM>(c => new CountryVM(c)).AsQueryable();
            return a;
        }

我希望odata允许我使用expand并选择选择countryVMs组织,但到目前为止还没有。

0 个答案:

没有答案