Entity Framework Core
实体框架数据访问技术的轻量型、可扩展、开源、跨平台版本。
49 个问题
大家好;我在 Entity Framework 类中有一些属性是 URI。
有没有办法将它们作为 URI 存储在数据库中?还是我应该将它们存储为字符串?
基础数据库是 Azure 上的 SQL 数据库。Note:
此问题总结整理于:What is the best way to store URI in EF/SQL Server?
欢迎来到 Microsoft Q&A,您可以参考 Microsoft 学习价值转换来做到这一点。
下面是一个可以参考的代码示例。
public class Website
{
public int Id { get; set; }
public string? Name { get; set; }
public Uri uri { get; set; }
}
public class MyContext:DbContext
{
public DbSet<Website> websites { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("");
}
}
public class MyEntityDbConfiguration : IEntityTypeConfiguration<Website>
{
public void Configure(EntityTypeBuilder<Website> builder)
{
builder.Property(e => e.uri)
.HasConversion(v => v.ToString(), v => new Uri(v));
}
}
我在 main 方法中添加了一个实体:
static void Main(string[] args)
{
Uri uri = new Uri("uri path");
MyContext context=new MyContext();
context.websites.Add(new Website() { Name = "web1", uri = uri });
context.SaveChanges();
}
检查后,数据库可以正确存储 URI:
希望我的解决方案会有所帮助。
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。
注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。