Я сделал что-то немного другое.
В вашем примере я бы изменил файл сопоставления так, чтобы метод получения и установки свойства, сопоставленного с базой данных, был закрытым и строчным, как показано в dmusial. Затем я создал свойство, которое НЕ было отображено в файле edmx, как показано здесь (примечание: хотя я обычно делал бы поля-члены _jobTitle, я использую генерацию кода, и в EF 5.x запуск с _ недопустим).
///<summary>
/// Private member mapped in .edmx file
/// Something like:
/// <Property Name="jobTitle" Type="String" MaxLength="Max" FixedLength="false"
/// a:SetterAccess="Private" a:GetterAccess="Private"
/// xmlns:a="http://schemas.microsoft.com/ado/2006/04/codegeneration" />
///</summary>
private string jobTitle { get; set; }
///<summary>
/// Publicly visible property that now contains your logic.
///</summary>
public string JobTitle
{
get { return jobTitle; }
set { jobTitle = SetProperCase(value); }
}
Теперь, когда вызывается SaveChanges, он должен сохранить свойство jobTitle в столбце, в который оно отображается в вашем файле edmx.