我有一个ForeignKey的问题,你会在数据库表中看到我有以下价值" LA URBINA"在列#34; EQU"。在我的模型中,该属性是:
[ForeignKey("Equipo")]
public string EQU { get; set; }
private Equipo equipo;
public virtual Equipo Equipo
{
get { return equipo; }
set { equipo = value; }
}
问题在于表格#34; Equipo"关键代码是" La Urbina"不是" LA URBINA"并且因此不建立关系,任何想法进行比较,无论价值是低还是高?请原谅我糟糕的英语,我希望你理解我,你可以帮助我
答案 0 :(得分:0)
你必须检查"整理"你的数据库正在使用。
例如," Latin1_General_100_CS_AI" - CS表示数据库中的字符串是"区分大小写的"和#34; LA URBINA"和" La Urbina"是不同的。
如果是"" Latin1_General_100_CI_AI" - CI表示数据库中的字符串是"不区分大小写的"这两个字符串之间没有区别。
要更改数据库排序规则,请重新创建(令人讨厌的方案)或右键单击 - >选项 - >排序规则。
答案 1 :(得分:0)
以防这可以帮助我的解决方案
在模型中:
private string equ;
[ForeignKey("Equipo")]
public string EQU
{
get { return equ.Capitalize(); }
set { equ = value; }
}
private Equipo equipo;
public virtual Equipo Equipo
{
get { return equipo; }
set { equipo = value; }
}
public static string Capitalize(this string str)
{
if (str != null || str == "")
{
str = str.ToLower();
str = Regex.Replace(str, @"\b[a-z]", delegate(Match m)
{
return m.Value.ToUpper();
});
}
return str;
}
在Equipo课程中:
private string codigo;
[Key]
[StringLength(20)]
public string Codigo
{
get { return codigo.Capitalize(); }
set { codigo = value; }
}