Tag: entity framework

如何解决Azure“此版本的SQL Server不支持Windows登录”?

当我尝试连接到SQL Azure时,我收到以下错误消息。 此版本的SQL Server不支持Windows登录 我正在使用Azure连接字符串。 在开发时我正在运行SQL Server Express。 当我尝试从数据库中获取某些数据时,会抛出此特定错误。 我正在使用的上下文在using子句中运行,请参见下文 function List GetList(string dbContextName) { using (MyDbContext context = new MyDbContext) { return context.SomeTypes.ToList(); } } 我们使用的是Entity Framework 4.2版,ASP.NET MVC 3和.NET 4.0。 我该如何解决这个问题?

如何在AutoMapper映射中忽略属性的属性?

映像具有多对多关系的Person和Group类。 一个人有一个组列表,一个组有一个人员列表。 将Person映射到PersonDTO我有一个stack overflow exception因为AutoMapper无法处理Person > Groups > Members > Groups > Members > … 所以这是示例代码: public class Person { public string Name { get; set; } public List Groups { get; set; } } public class Group { public string Name { get; set; } public List Members { get; set; } } public […]

与entity framework相同的“CASE WHEN THEN”(T-SQL)是什么?

我有一个Transact-SQl请求,我使用了很多,我希望得到entity framework的等价物。 但我不知道如何用EF制作“CASE WHEN”声明。 这是我的请求的简化代码: SELECT Code, SUM(CASE WHEN Month=1 THEN Days Else 0 END) AS Jan, FROM MyTable GROUP BY Code 你能告诉我它是否可能以及如何用EF做到这一点?

我可以在Linq to SQL中使用C#字符串插值

在使用EF(至少达到6.1.3版本)时,假设您有这样的类: class Customer { public string FirstName { get; set; } public string LastName { get; set; } } 如果要获取一个字段FullName ,它是两个( FirstName和LastName )的串联作为查询结果中的字段,您必须执行以下操作: db.Customers.Select(c => new { FullName = c.FirstName + ” ” + c.LastName }) 既然在C#中有字符串插值 ,你可以做这样的事情 db.Customers.Select(c => new { FullName = $”{c.FirstName} {c.LastName}” }) 这似乎是一个微不足道的例子(它是),但问题仍然存在。 我是否可以开箱即用,我是否需要制定一些技巧才能使其正常工作或确定它不起作用?

使用Entity Framework Code First时创建外键属性有什么意义?

在查看本网站上的问题和答案并阅读一些关于Code First开发的Google排名前列的教程时,我经常会看到以下模式…… public class Category { public Category() { Products = new Collection(); } public Guid ID { get; set; } public string Name { get; set; } public virtual ICollection Products { get; set; } } public class Product { public Guid ID { get; set; } public string Name { get; set; } […]

OrderBy基于字段列表和Asc / Desc规则

我有以下带有OrderBy参数的List : List fields = new List { “+created”, “-approved”, “+author” } 这将导致以下Linq查询: IQueryable posts = _context.posts.AsQueryable(); posts = posts .OrderBy(x => x.Created) .ThenByDescending(x => x.Approved); .ThenBy(x => x.Author.Name); 所以基本上规则是: 使用OrderBy的第一项和ThenBy的其他项。 当字段以字段开头时使用降序,而使用+时使用递增。 我的想法是有类似的东西: OrderExpression expression = posts .Add(x => x.Created, “created”) .Add(x => x.Approved, “approved”) .Add(x => x.Author.Name, “author”); 因此,表达式将post属性/子属性与字段中的每个键相关联。 然后它将应用如下: posts = posts.OrderBy(expression, fields); […]

如何处理entity framework中的主键5代码优先

在我的EF5代码优先模型中,如果数据库设置主键,则创建新记录会更好。 我使用Guid作为主键,如果设置了DatabaseGeneratedOption.Identity ,SQL Server将始终创建uniqueidentifier 。 但是,当我尝试初始化数据库时,这会导致问题。 如果我在种子方法中设置Guid,SQL Server会覆盖它。 如果我没有设置Guid,我每次都会得到一条新记录。 使用预先设置的Guids为数据库设定种子并为我的正常操作设置DatabaseGeneratedOption.Identity的建议解决方案是什么? 示例类模型: [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } public RecordName { get; set; } public DateTime? Created { get; set; } public DateTime? Updated { get; set; } 示例种子方法: var record = new Record() { Id = new Guid(“3B80725E-9550-4933-807F-C2FAA0942225”), RecordName = “New Record”, […]

为什么这个LINQ join语句不起作用?

我有这个LINQ查询: // types… LinkedList itemScores = new LinkedList(); var result = from i in _ctx.Items join s in itemScores on i.Id equals s._id orderby s._score descending select new ItemSearchResult(i, s._score); // this fails: return result.ToList(); 哪个生成此错误: 无法创建类型为’System.Collections.Generic.IEnumerable`1’的常量值。 在此上下文中仅支持基本类型(例如Int32,String和Guid’)。 [编辑]这是WeightedItem的代码: public class WeightedItem { public int _id; public decimal? _score; public WeightedItem(int id, decimal? score) { […]

关于收集的哪个条款

我正在使用Julie Lerman的DbContext书中的BAGA代码。 我想在LINQ中重新创建以下SQL查询,并将结果放在List集合中,并且遇到问题。 http://learnentityframework.com/downloads/ SELECT * FROM baga.Locations d LEFT JOIN Lodgings l ON d.LocationID = l.destination_id WHERE d.Country = ‘usa’ AND (l.MilesFromNearestAirport > 5 or l.MilesFromNearestAirport is null) 所以,用英语,获取在美国的所有地点(目的地),并包括所有相关的住宿,其中MilesFromNearestAirport> 5 语法不能编译,但我希望有类似于下面的内容 var dests = context.Destinations .Where(d => d.Country == “USA” && d.Lodgings.Where(l => l.MilesFromNearestAirport > 5)) .Select(d => d) .ToList(); 有任何想法吗?

如果模型更改,如何在EF中重新创建数据库?

我创建了一个像这样的DbContext: public class myDB : DbContext { public DbSet Parties { get; set; } public DbSet Bookings { get; set; } } 这生成了我的DataBase和上面的两个表……很棒 然后我决定在混合中添加另一个DbSet并且我收到了一个错误: 自创建数据库以来,支持“Party”上下文的模型已更改 我知道使用modelbuilder.IncludeMetadataInDatabase = false;修复此问题modelbuilder.IncludeMetadataInDatabase = false; 和Database.SetInitializer(null); 1)将新类添加到上下文并在DataBase中生成它们的正确方法是什么? 2)在我自己无法解决这个问题的过程中,我删除了表并试图重新运行应用程序但没有成功我然后删除了完整的数据库并重新运行它并没有重新生成数据库。 我怎样才能从头开始 – 某处有缓存吗?