当前位置: 首页 > 编程语言 > C#

使用EntityFrameworkFluentApi映射System.Uri分享

时间:2023-04-10 20:47:31 C#

使用EntityFrameworkFluentApi映射System.Uri是一个很简单的问题。我有一个具有System.Uri类型属性的模型。Uri没有默认的无参数构造函数,也没有ID字段。有没有办法覆盖我的模型生成以自定义方式将其存储在数据库中(例如,作为字符串)?在NHibernate中,我之前是通过实现IUserType来实现的,但是我在CodeFirst中找不到类似的机制。显然,我可以创建一个自定义类型,它在后台采用Uri并公开常规的可映射属性和构造函数,我只是好奇是否有任何方法可以映射此系统类型,这样我就不必像.EF不支持自定义类型映射,例如NH。特别是对于System.Uri,我使用包装器属性并将实际值映射为字符串;没有那么糟糕。这是一个很老的问题,但我今天遇到了同样的问题。使用EntityFrameworkCore2.1,您可以设置值转换:>新的Uri(v));}}publicclassMyDbContext:DbContext{protectedoverridevoidOnModelCreating(ModelBuildermodelBuilder){modelBuilder.ApplyConfiguration(newMyEntityDbConfiguration());不幸的是,没有直接的方法将映射到EF的System.UriString转换。但是,您可以像这样使用数据注释和属性URL属性:[DataType(DataType.Url)]publicstringLink{get;放;这将告诉一些服务,这应该作为URL显示和验证(例如,ASP.NET和Silverlight内置支持它)。试试这个..[Column(Name="MyUri",TypeName="string")]publicUriMyUri希望对你有所帮助...以上是C#学习教程:使用EntityFrameworkFluentApi映射System.Uri共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: