标签: ef4-code-only

如何首先使用EF 4代码重构代码/数据库模式 - 数据迁移

使用codefirst EF4进行数据库重构的最佳实践是什么?

我很想知道当RecreateDatabaseIfModelChanges选项不可行时人们如何更改类和数据库.需要进行数据迁移.

目前微软有一个解决方案,首先使用模型:

http://blogs.msdn.com/b/adonet/archive/2010/02/08/entity-designer-database-generation-power-pack.aspx?PageIndex=2#comments

有没有人有一个很好的代码策略?

c# entity-framework ef4-code-only

7
推荐指数
1
解决办法
1407
查看次数

在EF4 CTP4 Code First中包含附加列的连接表

鉴于此sql架构:

create table [dbo].[Courses_Students] (
    [DummyColumn] [int] null,
    [CourseId] [int] not null,
    [StudentId] [int] not null,
    primary key ([CourseId], [StudentId])
);
Run Code Online (Sandbox Code Playgroud)

如何定义复合主键和其他列EntityConfiguration

entity-framework ef4-code-only

6
推荐指数
1
解决办法
797
查看次数

如何将图像类型添加到EF4 Code First Entity?

如何将图像类型添加到EF4 Code First Entity?我需要为缩略图添加一列.

public Image Thumbnail { get; set; }
Run Code Online (Sandbox Code Playgroud)

谢谢!

entity-framework entity-framework-4 ef4-code-only

6
推荐指数
1
解决办法
2948
查看次数

使用结构代替EF4属性类型的基元

我有一个包含int位掩码的EF4实体(代码优先).我创建了一个Bitmask结构,以便更容易地使用位掩码(提供bool属性来访问位).位掩码结构包括用于转换为int和从int转换的重载隐式运算符.

我尝试将属性类型设置为位掩码结构,但值返回为0.我知道数据库中的值有一个值,并且位掩码在我的单元测试中有效.我将HasColumnType设置为"INT".

物业......

[Required]
[Display(Name = "Display Pages Bitmask")]
[Column(Name = "fDisplayPagesBitmask")]
public DisplayPagesBitmask DisplayPagesBitmask { get; set; }
Run Code Online (Sandbox Code Playgroud)

从上下文对象...

protected override void OnModelCreating(ModelBuilder builder)
{
    builder.Entity<Website>()
        .Property(m => m.DisplayPagesBitmask)
        .HasColumnType("INT");
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是这样,我需要做些什么才能让它发挥作用?

.net entity-framework-4 ef4-code-only

6
推荐指数
1
解决办法
4389
查看次数

EF4 Selftracking实体

我正在为我的应用程序构建dataAcess层我正在使用EF4自我跟踪实体我构建实体现在很好地退出我必须将自己的实体分离到他们的文件,所以我可以使用N层.到目前为止,我确实按照这个网址 http://www.codeproject.com/Articles/133689/How-to-Separate-Self-Tracking-Entities-to-Their-Ow.aspx?display=Mobile

但是当我构建解决方案时,它给了我错误错误2找不到类型或命名空间名称'IObjectWithChangeTracker'(您是否缺少using指令或程序集引用?)C:\ test\EF4 STE\STE\STEEntities\tbl_Departments. cs 22 49 STEEntities和更多这样的人可以帮助感谢

ef4-code-only

6
推荐指数
0
解决办法
652
查看次数

从IQueryable访问DbContext

我正在尝试实现可能需要使用Redis的缓存模式.此模式的问题是我需要禁用Configuration.ProxyCreationEnabled,然后重新启用它以避免Web场中出现任何问题.

我想要做的是从IQueryable访问DbContext,所以我可以做一次而不是到处.最简单的方法是将正在使用的DbContext传递给我的缓存扩展,但是我遇到了这个帖子:

访问IQueryable后面的DataContext

有没有办法使用EF 4.1 Code Fist(DbSet等)以类似于上面链接的方式访问DbContext?

我试图自己找到这个但是很难在IQueryable中使用反射从引用的DbSet中找到基类.

code-first ef4-code-only

6
推荐指数
1
解决办法
2577
查看次数

实体框架CTP 5一对一映射

我有两张桌子:

需求

RequirementId - PK

夹具

FixtureId - PK

RequirementId - FK/NULLABLE /唯一约束

夹具只能有1个要求,其他夹具不应该能够引用相同的要求.夹具不是必须具有要求,它是可选的.

我所做的是,在Sql Server中,我在Fixture表的RequirementId列上放置了一个Unique约束.如何在Entity Framework CTP 5中为此设置映射?

还可以在每个实体上使用双向导航属性吗?

public class Fixture
{
    public int FixtureId { get; set; }
    public Requirement Requirement { get; set; }
}

public class Requirement
{
    public int RequirementId { get; set; }
    public Fixture Fixture { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

也许我错了,所以任何建议都会很棒.提前致谢

entity-framework entity-framework-4 ef4-code-only ef-code-first entity-framework-ctp5

5
推荐指数
1
解决办法
2054
查看次数

MVC,ViewModels和验证

我正在使用POCO创建一个带有EF4的MVC3应用程序.我已经为我的EF实体添加了验证属性.现在,当我构建视图时,我想使用视图模型(也许使用AutoMapper来填充它们).

我遇到的问题是我必须在我的视图模型上重新定义我的验证属性,这违反了DRY主体.例如,如果我决定更改字段的大小,我必须更改POCO和使用它的任何视图模型的MaxLength属性.

是否有一些棘手的方法可以将验证规则从我的POCO映射到我的视图模型?

.net poco ef4-code-only asp.net-mvc-3

4
推荐指数
1
解决办法
815
查看次数

如何在WCF DataService中接受JSON?

我试图了解如何使用WCF数据服务(基于EF 4.1)来创建一个宁静的Web服务,该服务将持久化作为JSON对象传递的实体.

我已经能够创建一个方法,可以接受带有一组原始数据类型作为参数的GET请求.我不喜欢这个解决方案,我更喜欢在http请求体中发送带有JSON对象的POST请求.

我发现我无法让框架将json序列化为一个对象,但是我可以手动完成它.

我的问题是我似乎无法读取POST请求的正文 - 正文应该是JSON有效负载.

下面是一个粗略的裂缝.我已经尝试了几次不同的迭代,似乎无法从请求体中获取原始JSON.

有什么想法吗?更好的方法吗?我只想发布一些JSON数据并进行处理.

    [WebInvoke(Method = "POST")]
    public void SaveMyObj()
    {
        StreamReader r = new StreamReader(HttpContext.Current.Request.InputStream);
        string jsonBody = r.ReadToEnd();  // jsonBody is empty!!

        JavaScriptSerializer jss = new JavaScriptSerializer();
        MyObj o = (MyObj)jss.Deserialize(jsonBody, typeof(MyObj));

        // Now do validation, business logic, and persist my object
    }
Run Code Online (Sandbox Code Playgroud)

我的DataService是一个扩展的实体框架DataService

System.Data.Services.DataService<T>
Run Code Online (Sandbox Code Playgroud)

如果我尝试将非原始值作为参数添加到方法中,我会在跟踪日志中看到以下异常:

System.InvalidOperationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
'Void SaveMyObj(MyNamespace.MyObj)' has a parameter 'MyNamespace.MyObj o' of type 'MyNamespace.MyObj' which is not supported for service operations. Only primitive types are supported …
Run Code Online (Sandbox Code Playgroud)

c# json wcf-data-services ef4-code-only

4
推荐指数
1
解决办法
1万
查看次数

如何使用EF将数组属性映射到分隔的字符串数据库字段?

我有一个带有数组属性的对象,我希望将其作为分隔字符串保存在数据库中.如何将该属性映射到数据库中的字段,而不是?

public class User() {
  public int Id { get; set; }
  public string[] Roles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

不完整的配置类:

public class UserConfig : EntityTypeConfiguration<User> {
  public UserConfig() {
    this.Property(u => u.Roles).__???__
    this.Map(u => u.Properties<string[]>(r => r.Roles).__???__))
      .HasColumnName("roles");
  }
}
Run Code Online (Sandbox Code Playgroud)

对于此示例,"Roles"属性在转到数据库时将转换为"roleA,roleB,roleC",然后在从数据库读取时转换回数组.某处有数据映射事件吗?

c# orm entity-framework-4 ef4-code-only

3
推荐指数
1
解决办法
2342
查看次数

EF4 CodeFirst CTP5 nvarchar(max)via属性

有没有办法创建一个自定义属性,使EF CodeFirst 在分配给poco类的属性时使用nvarchar(max)作为数据类型?我知道这可以通过流畅的api实现,但我们希望将所有定义放在一个地方,这就是元数据类.

流畅的API:

modelBuilder.Entity<Event>().Property(p => p.TicketText).HasColumnType("nvarchar(max)");
Run Code Online (Sandbox Code Playgroud)

fluent-interface code-first entity-framework-4 data-annotations ef4-code-only

3
推荐指数
2
解决办法
1028
查看次数

代码优先EF4.1 + SQL Server CE4 +同步框架

是否可以一起使用CF EF4.1,SQL Server Compact 4和Microsoft Sync Framework?

正如我所知,MS Sync Framework需要SQL Server compact 3.5,但EF4.1使用SQL Server Compact 4 ...

更新 好的,我看到使用微软同步框架同步mssql ce4是不可能的.那么可以使用mssql ce3.5作为实体框架4.1的存储吗?

sql-server microsoft-sync-framework ef4-code-only ef-code-first

3
推荐指数
1
解决办法
2323
查看次数

如何创建一个包含外键的复合键,代码优先?

我首先使用EF4代码,并希望生成一个由类属性和外键组成的复合键.我有两个班:订单和公司.Order类包含引用,但这在公司之间不一定是唯一的.所以我打算使用由Reference和Company.CompanyId组成的复合键.

我已尝试使用以下设置它但我收到错误消息"键表达式无效".

modelBuilder.Entity<Order>().HasKey(o => new { o.Reference, o.Company.CompanyId });
Run Code Online (Sandbox Code Playgroud)

我也试过了

modelBuilder.Entity<Order>().HasKey(o => new { o.Reference, o.Company });
Run Code Online (Sandbox Code Playgroud)

这失败了.

这些是我的课程:

public class Order
{
   public string Reference { get; set; }
   public Company Company { get; set; }
}

public class Company
{
   public int CompanyId { get; set; }
   public virtual ICollection Orders { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

code-first entity-framework-4 ef4-code-only ef-code-first

2
推荐指数
1
解决办法
5115
查看次数