gpt4 book ai didi

entity-framework-4 - 如何在 EF CTP5 中映射属性

转载 作者:行者123 更新时间:2023-12-02 08:56:33 25 4
gpt4 key购买 nike

在 CTP 4 中,我们可以选择要映射的属性,如下所示:

    this.MapSingleType(i => new
{
i.Id,
i.OriginalFileName,
i.Extension,
i.MimeType,
i.Width,
i.Height,
i.ImageStoreLocationId,
i.AlternateText,
i.ImageData
});

我们如何在 CTP5 中实现这一目标?

我尝试使用以下映射配置,但这似乎不起作用,因为我仍然必须显式忽略(this.Ignore(..))我不想映射的属性:

    Map(config =>
{
config.Properties(i => new
{
i.OriginalFileName,
i.Extension,
i.MimeType,
i.Width,
i.Height,
i.ImageStoreLocationId,
i.AlternateText,
i.ImageData
});

config.ToTable("Images");
});

考虑到新的 API 应该更加流畅,奇怪的是我必须编写更多代码才能实现同样的事情。

谢谢本

最佳答案

这篇博文有 ctp 5 映射示例。

http://blogs.msdn.com/b/adonet/archive/2010/12/14/ef-feature-ctp5-fluent-api-samples.aspx

使 clr 为空属性成为必需:

modelBuilder.Entity<Product>() 
.Property(p => p.Name)
.IsRequired();

更改字符串长度:

modelBuilder.Entity<Product>() 
.Property(p => p.Name)
.HasMaxLength(50);

关闭身份:

modelBuilder.Entity<Product>() 
.Property(p => p.ProductId)
.HasDatabaseGenerationOption(DatabaseGenerationOption.None);

忽略属性:

modelBuilder.Entity<Person>() 
.Ignore(p => p.Name);

表和列映射更改列名称:

modelBuilder.Entity<Category>() 
.Property(c => c.Name)
.HasColumnName("cat_name");

更改表名称:

modelBuilder.Entity<Category>() 
.ToTable("MyCategories");

使用架构更改表名称:

modelBuilder.Entity<Category>() 
.ToTable("MyCategories", "sales");

关于entity-framework-4 - 如何在 EF CTP5 中映射属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4421315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com