У меня есть ситуация, когда мой первичный ключ - это char (2) в SqlServer 2008, и я хочу ссылаться на него в отношении «один ко многим», но ManyToOneBuilder (который возвращается ClassMap <>. References ( )) не имеет метода CustomSqlType (). В частности:
public class State
{
// state FIPS code is 2 characters
public virtual string StateCode { get; set; }
public virtual ICollection<County> { get; set; }
}
public class County
{
// state-county FIPS code is 5 characters
public virtual string StateCountyCode { get; set; }
public virtual State State { get; set; }
}
public class StateMap : ClassMap<State>
{
public StateMap()
{
Id(e => e.StateCode).CustomSqlType("char(2)").GeneratedBy.Assigned();
}
}
public class CountyMap : ClassMap<County>
{
public CountyMap()
{
Id(e => e.StateCountyCode).CustomSqlType("char(5)").GeneratedBy.Assigned();
References(e => e.State, "StateCode")
// Here's what I want to do, but can't because the method is not
// implemented on the class ManyToOneBuilder:
.CustomSqlType("char(2)");
}
}
Есть ли способ сделать это без изменения ManyToOneBuilder? Есть ли способ автоматически сопоставить FK (т.е. County.StateCode) с правильным типом? Добавить CustomSqlType в ManyToOneBuilder тривиально, но правильно ли это делать?