是否可以在实体框架的EDMX设计器中将空白字符串(即“”)指定为默认值?我发现的唯一技术是使用文本编辑器手动编辑edmx文件。是的,我发现将空字符串设置为默认值的唯一方法是编辑edmx。重新生成代码时,编辑设计器文件不起作用
这确实是实体框架中需要解决的一个bug
编辑:实际上,在XML中设置空字符串非常痛苦,因此在创建新实体时,在应用程序中将值设置为string.empty可能更容易。我所做的是在我设置的部分类中创建默认构造函数
_privateFieldName = string.Empty
在.NET framework中是否有一个类可以用来捕获打开的文件?FileSystemWatcher仅在文件被更改时触发。可以监视(=“文件或文件夹上次打开的日期”)属性的更改-这应该可以满足您的需要
有人知道在实体框架中是否有VS2008SP1的实现/插件,比如VS2010中的b
例如:
In database:
Entity Order
---OrderId
---CustomerId
---OrderDate
Entity Customer
---CustomerId
---Name
在EDM中:
Order.Customer
Customer.Orders
DataContext.Orders
DataContext.Customers
我不认为有,
我正在使用实体框架和MS SQL Server 2008。实体框架似乎总是将十进制实体属性四舍五入到最接近的整数,这真的很烦人。你以前见过这个问题吗?你的解决方案是什么?谢谢 如果不提供映射类和数据库模式,我只能假设其中一个使用Int或设置为零精度小数点的东西
同样值得一提的是,您使用的是哪个版本的EF(实体框架)。简单的回答是,不应该这样做
与Timothy所说的类似,可能发生了以下情况之一:
生成的某个类的属性被定义为int,而列是decimal-您可以通过在实体设计器中更改实际类型来实现
我试图在实体框架(VS2008SP1,3.5)中按层次结构模型创建一个表
我的大多数模型都非常简单,是一个抽象类型,有多个子类型继承自它
然而,我一直在努力应对这一最新挑战。我有一些学生,我想从个人那里继承(摘要),这些人应该从政党那里继承(摘要)
每次这样做时,我都会得到一个“错误2078:EntityType'Model.PERSONS'是抽象的,只能使用IsTypeOf进行映射。”我想问题是,在实体集中,PARTIES已经定义为IsTypeOf
那么这可能吗?我可以通过使PERSONS a
我对动态Linq库有问题。我遇到以下错误“ParserException未被用户代码处理”)“或“,”。我有一个dictionary,我想基于此字典创建一个查询。因此,我在字典中循环并附加到字符串生成器“PersonId=(来自字典的GUID)。我认为问题在于,如果出于某种原因我附加到PersonId,我似乎无法将字符串guid转换为guid,这样动态库就不会崩溃
我尝试过将字符串guid转换为guid,但没有成功
query.Append("(PersonId = Guid(" + perso
我有一个由3层组成的应用程序:
UI:在ASP.NET MVC中实现
业务:持有业务逻辑和资源访问控制
Repository DAL:使用存储库模式,使用POCO对象和EF实现。我的POCO对象与上层共享
我对POCO应该具备哪些信息/方法有疑问?
i、 e:如果我有一个用户表,其中包含一个用户的用户名和密码,那么我的POCO应该有什么?我应该如何验证密码?我的POCO是否应该有一个请求存储库进行验证的方法
此外,我应该如何控制对资源的访问?我的存储库是否应该控制谁可以和谁不能访问资源?这仍然允
EF 4不支持不基于外键/主键的关联。在很多情况下,您需要使用非键字段在表之间导航
例如,药物表具有:
medID (PK)
medGrouperID
medName
ingredientID (PK)
ingredientName
medGrouperIDID (PK)
ingredientID (PK)
配料表包括:
medID (PK)
medGrouperID
medName
ingredientID (PK)
ingredientName
medGrouperIDID (PK
我在EF 4.1中找到了两种并发检查实体的方法:
字节数组的时间戳属性
其他类型的ConcurrencyCheck属性
第一个很简单。您只需将字节数组属性标记为时间戳,在数据库中创建附加列,然后瞧
第二种方法有问题。当我标记LastUpdateDate属性时,Enity Framework已开始生成用于并发检查的sql脚本
财产:
[ConcurrencyCheck]
public DateTime LastUpdateDate { get; set; }
Sql:
但是EF不生成sql脚
我在插入从基类继承的子类的实例时遇到了一个问题
考虑来自这些POCO的以下代码片段:
public abstract class EntityBase<T>
{
private T _id;
[Key]
public T ID
{
// get and set details ommitted.
}
}
public abstract class PersonBase<T
我不喜欢在模型中多个实体共享的对象上放置导航属性。下面是我所说的一个例子:
public abstract class SomeEntity
{
public Guid Id {get;set;
public virtual ICollection<Attachment> Attachements {get;set;}
}
public class User: SomeEntity
{
有没有办法告诉EF 4.3+不要更新某些字段
我们在数据库中有一个标准,其中每个表都有一个“CreatedBy”列。我想确保不可能更新该专栏
我认为最安全的方法是告诉EF不要映射相应的属性,而只是为了更新
有没有办法做到这一点?如果先使用代码,可以使用DatabaseGenerated属性将属性配置为计算属性
哼让我补充一点。我希望在创建插入时将其推送到DB,而不是在更新时。
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
在使用单页应用程序示例时,我有以下TodoItem控制器:
public partial class MVC4TestController : DbDataController<MVC4TestContext>
{
public IQueryable<TodoItem> GetTodoItems()
{
return DbContext.TodoItems.OrderBy(t => t.TodoItemId);
}
}
公共
我有一个列表集合,其中包含id,我想查询出一个数据库表中的所有记录,该集合中的id是哪个
我知道我可以编写一个方法来遍历集合,并将linq写入实体,如context.table中的t,其中t.id=id选择t,但这意味着我必须按集合中的id数多次访问数据库,这显然不是我想要的
有人能帮忙吗?
提前谢谢 您可以这样做(假设id是id的列表):
Join也能用吗?在我的示例中,我也在尝试同样的事情,但我在表中加入了连接,这给了我一个错误:无法比较'System.Collections.Generic
我想以编程方式为EF 4.3代码优先数据库创建数据库创建脚本。数据库使用标准DatabaseInitializer机制创建得很好,但以下代码失败:
using(var dc = new MyContext())
{
var objContext = (IObjectContextAdapter)dc;
var script = objContext.ObjectContext.CreateDatabaseScript();
}
我得到的例外是:
非“timestamp”或“ro
标签: Entity Framework
ef-code-firstsql-server-ceentity-framework-4.3entity-framework-migrations
自从实体框架代码首次可用以来,我一直在使用以下方法:
public virtual void CreateDatabase()
{
var dbContext = _dbContextLocator.Current;
dbContext.Database.Delete();
dbContext.Database.Create();
dbContext.Database.Initialize(true);
}
最近,我注意到,当点击dbContext.Databa
我有一个对象IQueryable,我正在尝试动态添加Where子句,这对Listing对象上的列非常有用,但是现在有条件地我想向导航属性(ListingaMeanities)添加一个IN子句,该属性具有列ListingID、AmentityId
我有critiera.amendiId,其中可能包含我喜欢过滤结果的便利设施
如果我的数组中有任何修改,我将尝试实现以下目标
select * from Listings l inner join ListingAmenities a on l.List
我正在使用EF5,在for循环中调用context.SaveChanges时出错
如果要更新任何实体,是否需要调用SaveChanges以获取相同上下文中实体的更新值
例如,一个行项目的数量为n。在我的第一次迭代中,我将行项目的数量减少1。现在实际的数量是n-1。我还没有在上下文中调用SaveChanges。在同一行项目的下一次迭代中,数量是n还是n-1
谢谢我不太确定您想做什么,但您绝对不应该在循环中调用SaveChanges。在循环中进行所有需要的更改(添加、删除或上下文中的任何更改),完成
我需要对模型进行更改(先编写代码),然后在数据库上手动镜像更改。迁移不是一种选择。不幸的是,这会导致实体框架在根据模型验证模式时抛出异常(使用_MigrationHistory表)。有没有一种方法可以像EntityFramework那样禁用模式验证?我专门使用EF4.3 我可以想象您可以创建自己的IDatabaseInitializer实现,它什么都不做,并使用数据库。SetInitializer()您是否计划在进行更改后使用迁移?如果没有,您可以考虑删除“.x迁移历史表”……这样做会导致异常抛
我在EF 5中创建了两个实体之间的关联。
当我尝试构建dll时,在EDMX文件的这些行上出现错误3021
<AssociationSetMapping Name="NameAddress1" TypeName="MyModel.NameAddress1" StoreEntitySet="Name">
<EndProperty Name="Address">
<ScalarProperty Name="ID" ColumnName=
我有以下两个实体关系,在正确映射时遇到了很多困难(使用fluent api)
基本上,用户可以是项目的出借人和借款人。换句话说,项目可以由多个用户s借用,但只能由一个用户
public class User {
public int UserId { get; set; }
public virtual ICollection<Item> ItemsOwned { get; set; }
public virtual ICollection<Item&
我的域模型中有一个对象,User,其中包含一个配置设置列表。看起来是这样的:
public class User
{
public int ID { get; set; }
/* various user properties */
public List<ConfigurationSetting> Settings { get; set; }
}
如您所见,configuration类中没有反向导航属性。这是因为设置附加到主帐户,并且可以选择应用到用户
我使用ASP.NET MVC和Durandal/Breeze模板
假设我有以下课程:
public class Person
{
public int Id { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
public virtual List<Person> Friends { get; set; }
}
当执行
我正在使用EF4.5和DbContext。在业务规则层,我应该实现检查,以避免在某些实体场景中更改实体值属性。示例:StartProjecteDate仅当ProjectsStarted时才应为只读,但不应处于其他状态
我遵循原则,因此,我应该能够从上下文和UI检查只读属性列表
我的问题:
是否有可以将属性动态设置为只读的DataAnnotation验证程序?
(如果没有,是否有其他/更好的解决方案?)
请注意,如果我使用的是Web表单(和Telerik)体系结构,则欢迎使用干净优雅的模式
我正试
我从现有数据库开始,在edmx设计器中添加了一些关联。这似乎会引起麻烦,所以我决定从我在designer中创建的模型生成数据库。所做的只是创建一个无法运行的.edmx.sqlce文件,并使所有查询引用不存在的列。(“[Name]\u ID”代表我的所有关联)
有没有办法在Visual Studio中现有的数据库上执行此文件?我当前的.sdf数据库文件目前可以在服务器资源管理器的“数据连接”下访问。您可以使用我的SQL Server工具箱加载项来执行脚本,您可能需要添加一些GO行,请参阅我的博客文
请假设我们正在为一家有10名员工的公司创建一个项目,每个员工在我们的数据库中都有一个表。我们可以使用实体简单地处理这个表。但在将来,将添加员工数量,我们的应用程序必须为他们动态创建表。如何使用entity处理这些新表?我希望这是关于多租户的,而不是关于非常糟糕的数据库设计。你能提供更多的背景资料吗?嗨,格特·阿诺德,很抱歉我的英语不好。在那家公司里,管理员想管理几家牙科诊所,以便在空白时间预约。如果我们将所有约会数据放在一个表中,这将是巨大的。所以我决定将诊所表分开,并将预约数据分别放在这些表中
我有以下情况:
颜色类别
public int ID
{
get;
set;
}
public string Name
{
get;
set;
}
public string Hex
{
get;
set;
}
小部件类
public int ID
{
get;
set;
}
public int HeaderBackgroundColorID
{
get;
set;
}
public Color Hea
当客户端向服务器发送更新时,我需要在服务器上创建实体(在服务器上创建的这些条目主要用于审核报告)
根据,我应该在服务器上执行以下操作:
protected override Dictionary<Type, List<EntityInfo>> BeforeSaveEntities(
Dictionary<Type, List<EntityInfo>> saveMap)
{
...
var auditInp
这个问题真的很简单
我有大量的OData控制器,它们调用它们的存储库来保存/更新/删除数据。在这些操作结束时,我将调用UnitOfWork进行保存
public async Task<Foo> Post(Foo entity)
{
repository.Insert(entity);
await UnitOfWork.Save();
return entity;
}
public async Tas
我想将当前用户的当前DateTime.Now保存为UTC。对于任何用户来说,时间都是相对的吗?我使用此代码片段实现实体框架的UTC:
查看数据库后,日期列没有更改
09.05.2014 20:21:24
我需要在客户端显示与每个用户相关的日期。因此,当用户在美国14:00创建帐户时,我希望看到在欧洲20:00对DateTime对象调用。ToLocalTime()将其转换为本地时间。您应该始终将日期保存为UTC,然后在显示时进行转换。首先,您需要使用DateTime.UtcNow而不是Date
我需要通过确定传入方法的参数在列表中来过滤LINQ查询。我在另一个项目中做了类似的事情,效果很好,但我无法在这里获得语法
首先,我根据传入方法的值创建一个列表:
// Create a list of category events here
var categoryList = new List<int>();
var categories = context.CategoryEvents
.Where(c => c.CategoryId == categoryId)
在我的项目中,我使用EF代码优先的方法来遵循结构。因此,我有通用存储库IRepository
public interface IRepository<T> where T : class
{
IQueryable<T> GetAll();
T GetById(int id);
void Add(T entity);
void Update(T entity);
void Delete(T entity);
void Del
我已经有一个数据库,其中的表不在EF范围内。但我希望EF将使用的表能够自动创建
public class SessionInfo
{
public Guid Id {get;set;}
public string Name { get; set; }
public DateTime StartsOn { get; set; }
public DateTime EndsOn { get; set; }
public string Notes { get; s
我创建这些类是为了创建一个树(用户拥有根)
但是实体框架(代码优先)不保存父id
(在用户类中,按预期保存“根目录”)
当我手动创建表时(首先是Database),实体框架将父id保存为int,而不是“Node”
我能做什么?您没有正确实现ForeignKey注释。您需要执行以下操作:
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int ParentID { get; set; }
[Fo
我将此代码放入global.asax文件:
System.Data.Entity.Database.SetInitializer(new BcoInitializer());
ApplicationDbContext c = new ApplicationDbContext();
c.Database.Initialize(true);
var x = c.ProductCategories.ToList();
这将重新创建我的数据库。
但是Seed()从未被调用,我也不知道为什么
publi
我正在使用实体框架的.NETWebAPI。你能做到这一点真是太好了
[EnableQuery]
public IQueryable<Dtos.MyDto> Get()
{
return dbContext.MyEntity.Select(m => new MyDto
{
Name = m.Name
});
}
您可以将odata应用于Iqueryable,注意还返回了一个预计的dto
但是select是一个表达式,因此它被转换为sql。现在在上面的情况
我是实体框架的新手,希望能在“联接表”中插入数据方面得到一些帮助
我有三个表,Profiles,Tags,还有一个名为ProfilesTags的表连接这两个表。类首先从数据库/DB自动生成
公共部分类配置文件
{
公众简介()
{
this.ProfilesTags=newhashset();
}
公共int ProfileId{get;set;}
公共字符串名称{get;set;}
...
公共虚拟ICollection配置文件stags{get;set;}
}
公共部分类标记
{
公共标签(
当我尝试在Visual Studio 2013 Pro中使用NuGet安装EF时,出现以下错误:
Attempting to resolve dependency 'EntityFramework.Commands (≥ 7.0.0-beta4)'.
'EntityFramework.Commands' already has a dependency defined for 'EntityFramework.Relational'.
当我尝试安装EntityFramework.Core时,我
有人知道EntityFramework6是否支持FileTables吗?我搜索和谷歌搜索都没有结果。一切都是关于文件流的
干杯
bob因为FILETABLE只是一个“普通”的表(尽管有一个您自己无法定义/调整的固定模式)-是的,当然您可以查询FILETABLE甚至从EF6插入或删除行
或者你到底在寻求什么样的“支持”
如果要真正充分利用FILETABLE,并且要访问存储在该表中的文件内容,则需要使用SqlFileStream类,该类要求使用“原始”ADO.NET
但是没有什么能阻止您以正常的EF
我想将以下实体存储到一个表中。我从RESTAPI得到响应,它是分层JSON,但我需要将JSON结构作为平面结构存储到sql server数据库中。我正在使用新的.NETFramework和EF7
CampaignID (id)
CampaignTitle (settings.title)
CampaignType (type)
Status (status)
EmailsSent (emails_sent)
SendTime (send_time)
RecipientsLi
我想与.NET MVC EF建立多对多关系。我有客户模型(可以是雇主、雇员或同事等、公司或个人)。因此,任何客户都可以有雇员或雇主。我不知道如何在EF中设置此关系
我的模型(数据库上下文的一部分):
您需要向模型中添加一些附加配置,以指定与哪个属性相关
使用数据命名时,您需要使用属性:
public class ClientRelation
{
public long Id { get; set; }
[InverseProperty("SourceClientRelation
我有一个从Xamarin.forms引用的.netstandard模型层
我在模型层=>PrivateAssets=“All”中设置了Xamarin.Forms包
从模型层引用的My.netstandard数据层
在PowerShell中运行此命令时:
dotnet ef --startup-project ../Eela.Web/ migrations add v1
我有一个错误:
C:\Users*.nuget\packages\xamarin.forms\2.3.4.231\build\
我有一个用.NETCore编写的web应用程序,它使用实体框架连接到SQLServer数据库。当地一切正常。应用程序的暂存/生产环境是AWS Elastic Beanstalk,我似乎一直在想如何让应用程序连接到那里的数据库
我已经在Elastic Beanstalk应用程序下面创建了一个RDS(SQL Server)数据库
连接字符串:
user id=[USER];password=[PASSWORD];Data Source=[SERVER].rds.amazonaws.com:1433;
我使用代码优先的方法从模型中创建数据库,并在类中使用数据注释,如下所示:
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
[Table("Cat1")]
public class Cat
{
public int ID { get; set; }
[Required]
[MaxLength(50)]
public st
假设先有这些模型:
方法有一个原始代码
OriginalCode,它有许多突变体s
突变体具有许多解析子树
现在,当查询方法时,我希望加载另一个方法。因此,我有以下几点:
Method targetMethod = dBContext.Methods
.Include(me => me.OriginalCode)
.ThenInclude(oc => oc.Mutants)
.FirstOrDefault
我将一个ApiLog项目(C#库,在IActionFilter中将日志写入数据库)引用到一个业务项目(web api)中,这两个项目都定义了自己的DbContext,名为LogContext和BusinessContext:
public class LogContext:DbContext
{
public DbSet<ApiLogBase> LogBases { get; set; }
}
public class BusinessContext:
{
public
我有一个查询,它连接了大约10个表,其中一些是自引用表。我使用“IN”语句作为最顶层表的ID列(索引)上的条件
var aryOrderId = DetermineOrdersToGet(); //Logic to determine what orderids to get
var result = dbContext.Orders.Where(o=>aryOrderId.Contains(o.id)
.Include(o=>o.Customer)
.Include
我使用的是EF Core 2.1,查询不会在SQL server端进行计算
此查询中使用的模型为:
public class V_TurnoverByDivision
{
public long Id { get; set; }
public decimal LineAmount { get; set; }
public DateTime? PostingDate { get; set; }
public decimal Quantity { get;
我有一个名为Customer的表,它有两个属性referercode和ownereferercode。当客户注册时,他/她可以输入另一客户的推荐人代码,系统将分配唯一的OwnReferrerCode。多个客户可以使用特定客户的参考代码
public class Customer
{
[PrimaryKey]
public long CustomerId {get;set;}
public string ReferrerCode {get;set;}
public string
我正在使用EF Core 3.1,我在我的一个表上使用sql server数据类型hierarchyid
当我将表构建到我的项目中时,“hierarchyid”变成了几何体类型
我尝试在dotMorten.Microsoft.SqlServer.Types包的帮助下手动更改为SqlHierarchyId类型
我的API中的代码:
[HttpGet]
[Route("")]
public ActionResult<List<EntityDto>> Get()
{
En
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 370 页