所以我在我的应用程序中有一个看起来像的视图模型:
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; }
}
现在Organisation
和Country
是我的数据库中的表,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组织,但到目前为止还没有。