requireattribute私有字段
本文关键字:字段 requireattribute | 更新日期: 2023-09-27 18:10:32
我有一个实体
public class Avatar
{
[Key]
public int Id { get; set; }
[Required]
private string _linkInString { get; set; }
[NotMapped]
public Uri Link
{
get { return new Uri(_linkInString); }
set { _linkInString = value.AbsoluteUri; }
}
}
有一个private field (_linkInString)
,因为URI不能作为URI保存在数据库中,只能作为字符串。
当第一次运行时,我的数据库正在创建只有Id列的可获取Avatar。
有什么办法解决这个问题吗?
编辑我刚刚发现:-首字母为下划线的名称将被丢弃。-使用internal给出相同的结果。
创建一个公共映射字符串字段,该字段返回您希望保存为URI的字符串表示形式的内容。因为您的公共URI没有映射,所以所有的工作都像您描述的那样。
编辑:请更改:
[Required]
private string _linkInString { get; set; }
这:
[Required]
public string _linkInString { get; set; }
它现在如何保存?
EF中的代码映射有一个很大的限制。它遵循可访问性规则。private field对你的类来说是私有的它没有被映射,因为上下文看不到它。
如果你想用这种方式玩EF放弃代码优先/流畅映射和使用EDMX在这是可能的