Tag: entity framework

如何使用Entity Framework执行原始SQL查询而不必使用模型?

我正在尝试学习C#ASP.NET MVC 5.我正在尝试使用Entity Framework来完成我所做的一切。 但是,我需要运行原始SQL查询并将结果返回到数组中。 这是我到目前为止所做的。 我创建了我的上下文类,它允许我连接到服务器,它还允许我在运行时更改数据库。 这是我的上下文类 using ScripterEngine.Models; using System; using System.Collections.Generic; using System.Data.Common; using System.Data.Entity; using System.Data.Entity.Core.EntityClient; using System.Data.SqlClient; using System.Linq; using System.Web; namespace ScripterEngine.DataAccessLayer { public class BaseContext : DbContext { protected string connectionName; public DbSet Campaign { get; set; } /** * Created the connection to the server using the […]

entity framework代码列表第一个默认命名约定

我正在尝试查找entity framework的默认命名约定的示例列表。 我认为表是+s例如用户…外键是User_Id但我希望看到所有开箱即用的约定列表 – IEentity framework将调用我的对象。 我不是在寻找约定的类型 – 我知道了。 我正在寻找entity framework的默认约定将命名我的数据库对象的定义/示例。 为清楚起见,我没有添加或删除任何约定。 EF附带了许多用于生成数据库对象的默认约定 – 我想知道EF的开箱即用默认约定将命名我的数据库对象。 我需要这个的原因是因为虽然我正在使用CodeFirst,但我将手工创建我的数据库对象,而不是让EntityFramework为我生成它(我的同事坚持这一点)。 因此,我需要知道我应该为我的表,列,外键命名…所以entity framework将找到/映射它们而不需要显式映射。 例如 EF Default TableName Convention + ‘s’ (eg ***Users***) EF Default Foreign Key Convention + ‘Id’ (eg ***UserId***) EF Default Primary Key Convention ***Id*** 我在哪里可以找到这个?

MVC3中相同类型的实体之间的多对多关系

我有一个ASP.NET MVC3应用程序,我使用Entity Framework 4.3 Code-First和Migrations。 我一直在尝试在相同类型的实体之间创建多对多关系,但是当我使用迁移构建迁移时,它会生成一对一的关系。 这个想法是一个用户应该能够跟随多个其他用户(想想Twitter)。 我的User模型看起来像这样: public class User { public int UserId { get; set; } public string Name { get; set; } public DateTime Registered { get; set; } … public virtual ICollection Follows { get; set; } } 当我构建添加的Follows属性时,我得到这样的迁移: public partial class FollowUser : DbMigration { public override void Up() […]

entity framework代码优先 – 更改表名称

我想先更改使用Entity Framework代码生成的某个表的名称。 我已经创建了数据库,但现在我想更改名称。 我在项目中将所有对”Metadatas”表的引用更新为”Metadata” 。 但是在数据库中生成的表仍然是“Metadatas”。 我已经删除并重新创建了数据库,但这似乎也没有用。 也没有使用TableAttribute。 我该怎么办? 谢谢。 [Table(“Metadata”)] public class Metadata { [Required, Key] public int MetadataId { get; set; } [Required, ScaffoldColumn(false)] public int DocumentId { get; set; } [Required, StringLength(250), DataType(DataType.Text)] public string Title { get; set; } …

EF4.1代码优先:如何在依赖实体中禁用没有导航属性的关系的删除级联

假设我有这两个非常基本的实体: public class ParentEntity { public int Id; public virtual ICollection Childrens; } public class ChildEntity { public int Id; public int ParentEntityId; // Foreign Key public virtual ParentEntity parent; // [NOTWANTED] } 出于某些原因,我不希望ChildEntity将引用保留回其父级。 我只是希望它保留ParentEntity id,但仅此而已。 到目前为止,没问题,我只是删除[NOTWANTED]行,一切都按预期工作。 我的问题是:如何在特定情况下禁用级联删除? 如果我仍然拥有父导航属性,那将很容易: modelBuilder.Entity() .HasRequired(c => c.parent) .WithMany(p => p.Childrens) .WillCascadeOndelete(false) 但是如果没有导航属性,我根本不知道如何在删除时禁用级联(当然不是全局禁用它,也不是每个表禁用它,而只是为了关系)。 我现在所做的是将外键设置为可以为空的int,以便在删除时禁用级联,但这并不漂亮: public int? ParentEntityId; // Foreign Key […]

datetime2数据类型转换为datetime数据类型Error

我有一个控制器: [HttpPost] public ActionResult Create(Auction auction) { var db = new EbuyDataContext(); db.Auctions.Add(auction); db.SaveChanges(); return View(auction); } 一个模型: public class Auction { public long Id { get; set; } public string Title { get; set; } public string Description { get; set; } public decimal StartPrice { get; set; } public decimal CurrentPrice { get; […]

C#entity framework分页

有没有办法获得复杂的Linq查询和数百万条记录的行数, 而无需点击数据库两次或写入2个单独的查询? 我可能有自己的建议。 写一个存储过程,但我很擅长MySQL而不是MSSQL。 任何更好的建议都会很棒。 此外,如果有人知道Microsoft是否正在将此function添加到entity framework中。

演员在哪里? LINQ to Entities仅支持转换实体数据模型基元类型

我有许多entity framework表,我已经使用他们的IHistoricEntity类支持IHistoricEntity接口。 IHistoricEntity有ActiveTo Datetime? 属性。 // Auto generated LINQ to Entities domain service: [EnableClientAccess()] public partial class ProductService : LinqToEntitiesDomainService { public IQueryable GetANALYSIS_CODES() { return this.ObjectContext.ANALYSIS_CODES; } … } // My Partial class to add interface public partial class ANALYSIS_CODES : IHistoricEntity {} 我试图将这个工作代码重构为一个方法: List filtered = (from rec in ps.GetANALYSIS_CODES() where rec.ActiveTo == […]

什么是entity framework中的复杂类型以及何时使用它?

我试图阅读有关复杂类型的msdn 文章 。 但它没有解释何时使用它。 此外,在网络上没有关于复杂类型以及何时使用它们的全面解释。

表达树和可空类型

我一直在玩表情树。 我有以下简单方法,通过动态创建表达式树来执行查询。 ItemType是数据库中的可空int, 也是EF实体类中的可空int。 出于某种原因虽然查询引发了错误 未处理的exception:System.InvalidOperationException:没有为类型’System.Nullable`1 [System.Int32]’和’System.Int32’定义二进制运算符Equal。 我不认为我要求EF转换任何东西。 我的参数定义为int? ,这是我认为它应该是。 注意,我看过这个 在表达式树中使用可空类型 但是这个家伙试图传入他的可以作为对象输入的可以为空的int值,我猜这个EF有问题。 我实际上是从头开始宣布这是正确的类型。 public void GetResultCollection() { MyEntities db = new MyEntities(); var result = db.CreateQuery(String.Format(“[{0}]”, typeof(T).Name + “s”)); int? ItemTypeValue = 1; var param = Expression.Parameter(typeof(T)); var lambda = Expression.Lambda<Func>( Expression.Equal( Expression.Property(param, “ItemType”), Expression.Constant(ItemTypeValue)), param); var list = result.Where(lambda).ToList(); } 编辑 我也尝试了ItemTypeValue.Value – […]