标签: code-first

使用具有导航属性的接口

我正在尝试使用Entity Framework 4,POCO和Code-Only设置项目.

在实体框架中导航属性的类型是否可以作为接口?

我有一个"任务"课程.可以将任务分配给用户或组,每个用户或组由单独的类表示并存储在单独的表中.这些类看起来像这样:

public class User : IAssignable
{
    public string Name { get; set; }
    public int ID { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
}

public class Group : IAssignable
{
    public string Name { get; set; }
    public int ID { get; set; }
    public string Manager { get; set; }
    public string Department { get; set; }
}

public class Task
{
    public …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework code-first entity-framework-4

10
推荐指数
1
解决办法
3919
查看次数

SQLite与EF Code First

在使用SQLite和NHibernate成功之后,我很高兴使用它来进行Entity Framework Code First测试.

如果您有一些示例连接字符串并设置演示,这将是很好的,并节省一点时间从忙碌的一天.

非常感谢.

编辑:

值得一提的是,在通过EF"数据上下文"应用crud操作时,我在调试期间收到此错误:

无法确定"System.Data.SQLite.SQLiteConnection"类型连接的提供程序名称.

<system.data>
    <DbProviderFactories>
        <remove invariant="System.Data.SQLite"/>
        <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
   type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
</system.data>


<connectionStrings>
    <add name="DataContext"
         connectionString="Data Source=:memory:;Version=3;New=True;"
         providerName="System.Data.SQLite"
     />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

希望EF能够以这种方式与SQLite集成.虽然错误消息令人担忧,但可能并非如此.

sqlite entity entity-framework code-first

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

实体框架代码优先 - 两个具有相同名称但位于不同名称空间的实体

我在以下场景中遇到了db生成问题:

1.cs First.Entities命名空间中的项目实体maped到First_Project表.

namespace First.Entities
{
    #region using section

    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Entity.ModelConfiguration;
    using System.Diagnostics.CodeAnalysis;

    #endregion

    [Table("First_Project")]
    public class Project
    {
        [Key]
        public int Id
        {
            get;
            set;
        }

        [Required]
        [MaxLength(1000)]
        public string Name
        {
            get;
            set;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

2.cs在Second.Entities命名空间中的项目实体maped到Second_Project表.

namespace Second.Entities
{
    #region using section

    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Entity.ModelConfiguration;
    using System.Diagnostics.CodeAnalysis;

    #endregion

    [Table("Second_Project")]
    public class Project
    {
        [Key]
        public int Id
        {
            get;
            set;
        }

        [Required]
        [MaxLength(1000)]
        public string Name
        {
            get;
            set;
        } …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework code-first entity-framework-4.1

10
推荐指数
1
解决办法
6306
查看次数

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

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

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

entity-framework code-first linqpad

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

如何在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
查看次数

实体框架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
查看次数

mvc 5将第一个用户ID作为外键

我有一张桌子:

public class TestModel
{
    public int Id { get; set; }
    public string UserId { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望UserId列是外键,Mvc Membership的用户ID列.我怎么能得到这个?

我的IdentityModels:

public class ApplicationUser : IdentityUser
{
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc code-first ef-code-first asp.net-mvc-5

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