ForeignKey 字符串 ToLower Entity Framework
ForeignKey String ToLower Entity Framework
我的外键有问题,您将在数据库中看到 table 我在 "EQU" 列中有以下值 "LA URBINA"。在我的模型中 属性 是:
[ForeignKey("Equipo")]
public string EQU { get; set; }
private Equipo equipo;
public virtual Equipo Equipo
{
get { return equipo; }
set { equipo = value; }
}
问题是在table"Equipo"中关键代码是"La Urbina"而不是"LA URBINA"因此没有关系,有没有办法做比较不管价值是低还是高?请原谅我的英语不好,我希望你能理解我并能帮助我
您必须检查 "Collation" 您的数据库正在使用什么。
例如,"Latin1_General_100_CS_AI" - CS 表示您数据库中的字符串是 "case-sensitive",而 "LA URBINA" 和 "La Urbina" 等字符串是不同的。
如果是“"Latin1_General_100_CI_AI" - CI 表示数据库中的字符串是 "case-insensitive" 并且这两个字符串之间没有区别。
要更改数据库排序规则,请重新创建它(糟糕的情况)或右键单击 -> 选项 -> 排序规则。
以防万一这可以帮助某人我的解决方案是
模型中:
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;
}
在class装备中:
private string codigo;
[Key]
[StringLength(20)]
public string Codigo
{
get { return codigo.Capitalize(); }
set { codigo = value; }
}
我的外键有问题,您将在数据库中看到 table 我在 "EQU" 列中有以下值 "LA URBINA"。在我的模型中 属性 是:
[ForeignKey("Equipo")]
public string EQU { get; set; }
private Equipo equipo;
public virtual Equipo Equipo
{
get { return equipo; }
set { equipo = value; }
}
问题是在table"Equipo"中关键代码是"La Urbina"而不是"LA URBINA"因此没有关系,有没有办法做比较不管价值是低还是高?请原谅我的英语不好,我希望你能理解我并能帮助我
您必须检查 "Collation" 您的数据库正在使用什么。
例如,"Latin1_General_100_CS_AI" - CS 表示您数据库中的字符串是 "case-sensitive",而 "LA URBINA" 和 "La Urbina" 等字符串是不同的。
如果是“"Latin1_General_100_CI_AI" - CI 表示数据库中的字符串是 "case-insensitive" 并且这两个字符串之间没有区别。
要更改数据库排序规则,请重新创建它(糟糕的情况)或右键单击 -> 选项 -> 排序规则。
以防万一这可以帮助某人我的解决方案是
模型中:
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;
}
在class装备中:
private string codigo;
[Key]
[StringLength(20)]
public string Codigo
{
get { return codigo.Capitalize(); }
set { codigo = value; }
}