Sql server 如何处理可更新语言及其单词
我的项目中有两个多语言数据库表:Sql server 如何处理可更新语言及其单词,sql-server,asp.net-mvc-3,Sql Server,Asp.net Mvc 3,我的项目中有两个多语言数据库表: Word -ID- -En- -Ge- 1 Hello Hallo 2 Yes Ja Lang -ID- -Name- -FlagFileName- 1 English flag-en.jpg 2 Deutsch flag-ge.jpg 但是,我需要能够在系统中添加新的语言。我可以在La
Word -ID- -En- -Ge-
1 Hello Hallo
2 Yes Ja
Lang -ID- -Name- -FlagFileName-
1 English flag-en.jpg
2 Deutsch flag-ge.jpg
但是,我需要能够在系统中添加新的语言。我可以在Lang表中添加新行,在Word表中添加新列,但无法在ASP.NET MVC3项目中更新DBContext对象。我的模型中的数据库对象
public class Word
{
public int ID { get; set; }
public string English { get; set; }
public string Deutsch { get; set; }
}
public class Language
{
public int ID { get; set; }
public string Name { get; set; }
public string ImageFileName { get; set; }
}
我需要一种方法来定义这个词,因为它可以添加新的语言。如何更新Word对象?这在某种程度上是可行的吗
我在处理动态视图时也有问题:
@{
Type objectType = Type.GetType(typeof(MyProjectNamespace.Models.Word).AssemblyQualifiedName);
System.Reflection.PropertyInfo[] fields = objectType.GetProperties();
}
<table>
@foreach (System.Reflection.PropertyInfo f in fields)
{
<th> @f.Name.ToString() </th>
}
@foreach (var item in Model) {
<tr>
@foreach (System.Reflection.PropertyInfo f in fields)
{
<td>@Html.DisplayFor(modelItem => item.English)</td>
<td>@Html.DisplayFor(modelItem => item.Deutsch)</td>
<td>//How can I display for a new Language here?</td>
}
</tr>
}
</table>
我可以用下面的代码获取Word的每个属性并将它们打印为标题,但是如何打印这些动态属性中的值呢?这可行吗
我很欣赏任何想法,我甚至准备重新创建表格。我决定简单一点。处理动态模型对象并获取其动态属性可能是可行的,但不值得。所以我决定我需要一个单词表,比如:
Lang -ID- -Name- -FlagFileName-
1 English flag-en.jpg
2 Deutsch flag-ge.jpg
Word -ID- -Text- -LanguageID-
1 Hallo 2
2 Hello 1
3 Yes 1
4 Ja 2
因为随着新语言的加入,这些单词不会出现在数学索引中,例如:
--indexed-- --index broken--
1-English Word 1-English Word
2-German Word 2-German Word
3-English Word 3-Spanish Word
4-German Word 4-Dutch Word
由于计算机无法以100%的可靠性理解一个单词的含义,我决定建立一个只包含英语单词的意义表:
Meaning -ID- -Text-
1 Hello
2 Yes
并将含义与实际单词绑定:
Word -ID- -Text- -LanguageID- -MeaningID-
1 Hallo 2 1
2 Hello 1 1
3 Yes 1 2
4 Ja 2 2
我将WordID分配给新的动态元素,比如一个新类型,它将用于填充某个下拉框。现在我将它绑定到一个有意义的ID
我想,这个解决方案是清晰、易懂且易于实施的。我一周内不会接受我自己的答案,以防一些明确的解决方案可能会出现在我目前的表格中