【发布时间】:2017-05-20 11:40:33
【问题描述】:
ASPNET MVC5 网络应用,Visual Studio 2015
网站是语言本地化的,所以我需要根据文化参数获取本地化的类别。
category_trans 表用于提供类别名称翻译,而ISO_Languages 用于接收文化代码参数并将其相关 id 传递给category_trans。
型号:
public partial class Product
{
public int? ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int CategoryID { get; set; }
public virtual category_trans category_trans { get; set; }
}
public partial class Category
{
public int ID { get; set; }
public string Name { get; set; }
public int? ParentID { get; set; }
public bool IsDeleted { get; set; }
}
public class category_trans
{
[Key]
[Column(Order = 1)]
public int category_id { get; set; }
[Key]
[Column(Order = 2)]
public int language_id { get; set; }
public string name { get; set; }
}
public class ISO_Languages
{
public int ID { get; set; }
public string code { get; set; }
public bool IsEnabled { get; set; }
public string name_en { get; set; }
public string name_fr { get; set; }
public string name_it { get; set; }
public string name_de { get; set; }
public string name_es { get; set; }
}
public static IQueryable<Product> ActiveProductsPerUser(BaseContext db, string userid, string culture)
{
return from p in db.Products
from ct in db.category_trans
from l in db.ISO_Languages
where (ct.category_id == p.CategoryID
&& ct.language_id == l.ID
&& l.code.Substring(0, 2) == culture)
select p;
}
导致错误:
System.Data.SqlClient.SqlException:列名“category_trans_category_id”无效。列名“category_trans_language_id”无效。在 System.Data.SqlClient.SqlCommand.c.b__174_0(Task
1 result)2.InnerInvoke()
in System.Threading.Tasks.ContinuationResultTaskFromResultTask
在 System.Threading.Tasks.Task.Execute()
另请注意,我将预期结果传递给另一种排序和分页方法,因此接受IQueryable 作为输入(没有IEnumerable)。
【问题讨论】:
-
代码优先还是数据库优先?
-
你好。先写代码。
标签: sql asp.net-mvc linq