假如我这有一张Person表,有三个字段:
Name (Varchar 20)
Sex(bit) --性别:0-未知;1-男;2-女
Birthday(char 8) --注意Birthday是存字符的,如“20110413”。
那经过EF映射之后的实体的Birthday就是String类型的,问题来了,假如我要绑定到Dev的edit控件
//绑定名字
TextEdit_Name.DataBindings.Add("Text",Person,"Name");
//绑定性别的值到ComboBox_Sex的下拉列表
ComboBox_Sex.DataBindings.Add("SelectedIndex",Person,"Sex");
//这里就不能绑定Birthday了.......
//DateEdit_Birthday.DataBindings.Add("DateTime",Person,"Birthday");
//只能用这种方式来显示到日期控件。
string str_birthday = Person.Birthday.Substring(0, 4) + "-" + Person.Birthday.Substring(4, 2) + "-" + Person.Birthday.Substring(6, 2);
DateEdit_Birthday.DateTime = Convert.ToDateTime(str_birthday);
那我能不能在EF的Person实体里再加入一个属性Date_Birthday,get的时候取得另一属性Birthday的值然后转化为DateTime型,set的时候再转换成8位字符然后赋值给Birthday属性,这样的话我就可以直接这样绑定了:
DateEdit_Birthday.DataBindings.Add("DateTime",Person,"Date_Birthday");
如果可以这样的话,我在EF里应该怎么做。。。
遇到过这种情况,但还没见过在EF里动手脚的,如果做WPF的,应该知道绑定的时候允许加个Converter,处理楼主的情况还是很方便的。
你试试绑定 DateTimePicker 的 Text 属性
然后你要指定 DateTimePicker的 Format为Custom,把格式设置为 yyyyMMdd