标签: code-first

是否可以将LinqPad与代码优先模型一起使用

在过去,在LinqPad中将连接设置为具有EF模型的自定义程序集很容易.Linqpad寻找一个基于System.Data.Objects.ObjectContext哪个不存在的

如何(如果有的话)使他们的模型组件与LinqPad兼容.

entity-framework code-first linqpad

9
推荐指数
1
解决办法
2537
查看次数

如何使用与EF4 Code First相同的表做多对多

我有这个架构:

create table Person
(
id int identity primary key,
name nvarchar(30)
)

create table PersonPersons
(
PersonId references Person(id),
ChildPersonId references Person(id)
)
Run Code Online (Sandbox Code Playgroud)

如何创建使用EF4 Code First CTP5映射它们的类?

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

9
推荐指数
1
解决办法
3990
查看次数

如何在EF Code First CTP5中更改DB中外键的命名约定?

我正在使用实体框架Code First CTP5,我试图找到一种方法来添加一个约定来改变外键名称的生成方式.这是一个例子:

public class Lead
{
    public int Id {get; set;}
    // A lot of other fields
    public virtual User AssignedTo { get; set; }
}

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

潜在客户可以与用户相关联.在Leads表的DB for AssignedTo中生成的字段称为UserId.

我的模型完全独立于实体框架.所以我不想使用EF的属性.我想在可能的情况下使用约定将字段命名为AssignedToUserId.

entity-framework code-first entity-framework-ctp5

9
推荐指数
1
解决办法
1348
查看次数

使用EF 4.1部署数据库更改

有没有人在EF 4.1代码优先解决方案中部署数据库更改有任何最佳实践?我知道MS目前不支持EF 4.1的数据库迁移,但显然人们不时需要这样做.

谢谢

asp.net code-first entity-framework-4 entity-framework-4.1

9
推荐指数
1
解决办法
3506
查看次数

实体框架4.1代码创建多对多关系的第一种方法

我在Silverlight应用程序中使用Silverlight 5 Beta SDK和EntityFramework 4.1.

我将尝试创建两个表'Author'和'Book'.在SQL中,应该有第三个(连接)表,它在Author和Book之间建立多对多关系(一个作者可以编写很多书,一本书可以从许多作者那里编写).

这是我到目前为止所得到的:

namespace CodeFirst.Models.Web
{    
    public class Author
    {
        public Author()
        {
            this.Books = new HashSet<Book>();
        }

        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Key]
        public int ID { get; set; }

        [Required]
        public string Name { get; set; }

        public ICollection<Book> Books { get; set; }
    }


    public class Book
    {
        public Book()
        {
            this.Authors = new HashSet<Author>();
        }


        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Key]
        public int ID { get; set; }

        [Required]
        public string Name { get; set; }

        public ICollection<Author> Authors { …
Run Code Online (Sandbox Code Playgroud)

c# silverlight many-to-many code-first entity-framework-4.1

9
推荐指数
1
解决办法
3127
查看次数

禁用实体框架的默认值生成(代码优先)

我在数据库中有一个不能为null的列,我想将其设置为在数据库中具有默认值.问题是实体框架似乎自己创建了一个默认值(例如,int => 0),并完全忽略了数据库中的默认值约束.

有没有办法禁用这个实体框架的默认值?

c# code-first entity-framework-4

9
推荐指数
2
解决办法
4061
查看次数

实体框架代码第一对一关系

我有以下两种型号

public class Account
{
     public int Id { get; set; }
     public string Name { get; set; }
     public int CurrentPeriodId { get; set; }

     [ForeignKey("CurrentPeriodId")]
     public virtual Period CurrentPeriod { get; set; }

     public virtual ICollection<Period> Periods { get; set; }
}

public class Period
{
     public int Id { get; set; }
     public int AccountId { get; set; }
     public DateTime StartDate { get; set; }
     public DateTime EndDate { get; set; }

     public virtual Account Account …
Run Code Online (Sandbox Code Playgroud)

entity-framework code-first

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

在实体框架4.1(CodeFirst)中更新对子对象的引用

我正在尝试使用EntityFramework 4.1(CodeFirst)更新我之前保存的对象

Job类具有以下属性......

public class Job
{
    [key]
    public int Id { get; set; }
    public string Title { get; set; }
    public Project Project { get; set; }
    public JobType JobType { get; set; }
    public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

初始创建工作正常,但更新只提交对字符串的更改.

如果我改变的子对象,例如在JobType从地产JobTypeAJobTypeB-更改不会犯...

我不打算对JobType进行更改 - 仅限于Job.

using (var context = new JobContext())
{
    context.Jobs.Attach(job);
    context.Entry(job).State = EntityState.Modified;
    context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

看看SQL Profiler - 甚至没有为更新发送ID - 但它们是用于初始插入!

c# entity-framework code-first ef-code-first

9
推荐指数
1
解决办法
8612
查看次数

EF Code First:不包括可选关系

我的代码中有一个特定的查询,需要急切加载所有相关的实体(两个 - > 1个FK和 - > N个FK),因为上下文将在此之后处理.

我做了一个通用的"查询"方法,params Expression<Func<MyItem, object>>[] includes然后内部链接它们.那部分工作正常.

查询如下所示:

var item = facade.Query<MyItem>(
                c => c.Childs.Select(x => x.Parent),
                c => c.Childs.Select(x => x.SubChild1),
                c => c.Childs.Select(x => x.SubChildNotWorking),
                c => c.Childs.Select(x => x.SubChild2),
                c => c.Childs.Select(x => x.SubChild3),
                c => c.Childs.Select(x => x.SubChildrens)
                ).FirstOrDefault(c => c.Name == name);
Run Code Online (Sandbox Code Playgroud)

不工作属性的映射(放置在SubChildNotWorking的配置中):

this.HasMany(scnw => scnw.Childs).WithOptional(c => c.SubChildNotWorking).HasForeignKey(c => c.MyForeignKey);
Run Code Online (Sandbox Code Playgroud)

在所有包含中,只有SubChildNotWorking实际上不起作用.在使用调试器检查返回的对象时,我会在所有属性上看到代理.打开代理为我提供了所有其他关系的正确数据,并为该SubChildNotWorking属性提供了"objectcontext已被处置异常" .

我能够发现的唯一区别是,它SubChildNotWorking是一个可以为空的FK(DB上有可空列和dbcontext中的WithOptional配置),而所有其他都是使用WithRequired配置的不可空FK.

数据库也是一个没有使用Code First创建的遗留数据库而不遵循其约定,我只是在DbContext中进行了映射.其他一切都很好.

我试图找出是否急于加载对可空的FK不起作用,但我找不到任何关于它的文档.

这是一个错误,还是预期的行为?但最重要的是,我该如何解决这个问题呢?

谢谢.

c# entity-framework lazy-loading code-first eager-loading

9
推荐指数
1
解决办法
1551
查看次数

如何在EF代码中首先创建持久计算列?

如何使此列与数据库中的PERSISTED COMPUTED列类似?

我当前的尝试(它在种子中加载所有带有null的CompCol行):

    public class Call
    {
        public Call()
        {
        }

        [Key]
        public int Id { get; set; }

        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public string CompCol
        {
            get
            {
                return "ABC-" + Convert.ToString(Id).PadLeft(5, '0');
            }
            protected set {}
        }
}
Run Code Online (Sandbox Code Playgroud)

sql-server entity-framework code-first ef-migrations

9
推荐指数
1
解决办法
4160
查看次数