ForeignKey String ToLower实体框架

时间:2015-04-22 23:47:42

标签: c# entity-framework foreign-keys entity-relationship

我有一个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"并且因此不建立关系,任何想法进行比较,无论价值是低还是高?请原谅我糟糕的英语,我希望你理解我,你可以帮助我

2 个答案:

答案 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; }
}