在我的应用程序中,我将Spring.Net用于IoC。从ASP.Net文件调用服务对象,以使用这些服务对象执行CRUD操作。例如,我让CustomerService在Customer表上执行所有CRUD操作。我使用实体框架,实体被注入。。我的问题是在哪里调用dispose方法
据我从API文档中了解,除非调用Dispose(),否则不能保证它会被垃圾收集!那么我在哪里以及如何做呢
示例服务类:
public class CustomerService
{
public ecommEnt
我只是想知道在使用实体框架和多语言数据库时是否有最佳实践?我处理此问题的数据库设计是为我的所有翻译提供一个单独的表:
[Product Table]
ProductID PK
NameId FK
DescriptionId FK
[Translation Table]
TextId PK
LanguageId
TranslationText
我很乐意接受这种方法,但我想知道实体框架是否有任何功能可以帮助实现这一点?如果能够拥有一个产品实体对象,给它一种语言
如果从数据库构建edmx文件,然后数据库发生更改,那么如何让模型获取更改
是否删除整个模型并重新生成,或者是否可以检测到更改
我看到一篇文章提到在edmx文件上使用“更新你的模型”rt.mouse命令,但我没有看到
我刚刚开始。您是在查看设计器还是代码视图?您可以通过右键单击EDMX文件并选择open With->ADO.NET实体数据模型设计器来强制打开设计器
在EDMX设计器的设计器界面上单击鼠标右键,然后单击从数据库更新模型…
默认情况下,将刷新所有实体,仅当您选择新实体时,才会添加新实
我有一个数据库,我有实体POCO,我想用EF在两者之间映射,并跟踪加载、保存等更改
我已经阅读了很多关于“代码优先”的文献(比如它),我不清楚在不生成数据库的情况下我需要提供多少数据库信息
例如,EF是否需要知道哪些属性是键、字符串属性的最大长度、表之间的关系等。?或者,如果它确实需要知道,它能从数据库本身获得这些信息吗?换句话说,如果不需要创建数据库,我是否必须提供[Key]注释等,或者提供详细说明外键关系的配置信息
更新:为了让事情更清楚一点,下面的代码就是我要说的。我必须手动创建这个从Db
我有一个包含3个表的数据库,如下所示:
在VisualWebDeveloper2010Express中,我使用实体数据模型向导创建了一个EF模型。我选择了3个表。不幸的是,生成的EF模型不包含连接表,即QuestionsTags表。下图显示了EF模型图
我的问题:为什么实体数据模型向导不能用于许多相关的表?它可以工作。请注意EF模型图底部的导航属性
QuestionsTags表仅用于对关系数据库中的多对多关系进行建模。当您的对象不必符合刚性表模式时,您可以使用问题对象上的集合来获取该问题上的
在以下情况下,实体框架代码会首先错误命名/重命名连接表或联接表
public class User () {
//all fields from Users table
//...
//Role collection from Roles table through UserRoleLinks table
public List<Role> Roles { get; set; }
}
public class AppUser() {
//subset of fields
我的班级关系:班主任1--*班级会议
我的目标是:返回所有具有StartDateTime大于当前日期的类会话的ClassMaster,以及这些按日期筛选的类会话
在T-SQL中,我会这样做:
select *
from ClassSession
join ClassMaster on ClassMaster.ClassId = ClassSession.ClassId
Where ClassSession.StartDateTime > getdate()
我需要在En
我有一个简单的表,它有一个ID(一个uniqueidentifier),一个datetime,还有一个值
我想在数据库上使用getdate()作为记录插入时间,使用newid()作为id。如何配置entity framework来实现这一点?当我尝试在数据库上分配id时,我得到:
违反主键约束“PK_Random”。无法在对象“dbo.Random”中插入重复键。重复的键值为(00000000-0000-0000-0000-000000000000)。
如果您先使用代码。请将以下内容添加到您的g
我正在寻找像IEntitesFactory或类似的东西,允许我处理实体实例创建
有人知道EF 4.0是否可行吗?没有,没有扩展点可以包含您自己的实体工厂。只能处理从加载的实体的事件
我想检测我的entity framework datacontext是否已更改,是否有要应用于SaveChanges的更改,以便我可以将其绑定到我的Save按钮IsEnabled。我知道我的命令也有CanExecute,但我还没有使用它。无论以何种方式-我希望在用户更改数据时启用“保存”按钮,并在尚未进行更改时禁用“保存”按钮,即在“保存更改”之后立即禁用
感谢detect of my datacontext已更改-您的意思是您的view.datacontext已更改还是EF dataconte
我正在使用Entity Framework Code Fist设置一个新的应用程序,我正在寻找尽可能减少到SQL Server的往返次数的方法
当我第一次读到.Local属性时,我非常激动,因为我可以在处理管道的早期关闭整个对象图,然后在以后使用.Local,而不必担心会产生额外的往返成本
现在我正在玩弄它,我想知道是否有任何方法可以在一次往返中记录一个请求所需的所有数据。例如,如果我有一个网页,上面有一些列表、新闻、事件和讨论。有没有一种方法可以让我在一次往返过程中将3个不相关源表的记录记录记
假设我有以下课程:
public class User
{
public int UserId { get;set;}
public string Firstname { get;set;}
public Interests Interests { get;set;}
}
public class Interests
{
public IList<Team> FavoriteTeams { get;set;}
public IList<F
我首先使用实体框架4.1代码
我在数据库中有一个名为MaritalStatus的表。我删除了它,并在它的位置创建了一个名为MaritalStatus的新表。每当我试图从表中获取所有记录时,都会出现一个错误:
对象名称“dbo.MaritalStatus”无效
它试图执行的查询是:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[IsActive] AS [IsActive]
FROM [dbo].[
我使用EntityFramework4.0开发了一个示例应用程序。但现在我为一家公司开发了一款真正的应用程序。在这里,我想使用具有通用存储库、工作单元和DI容器的实体框架实现DAL
请任何人给我推荐一个框架的真实例子
谢谢
Rusho通用存储库是胡说八道。如果您想使用名为Repository的设计模式,您应该考虑特定的存储库和聚合根
通用存储库只是对象集/数据库集的包装器,不提供任何附加值-只提供必须维护的附加层,这使得与EF的交互更加困难。另外,添加存储库而不阐明为什么要这样做以及它应该为您解
我的应用程序的工作流程非常简单:
对于给定的一组脚本
拿剧本
解析它
从数据库中获取相应的对象图
如果找不到图形,请更新或创建新图形
保存更改
将图形与GC的对象上下文分离可能会终止该图形
如果为每个脚本创建了对象上下文,则列表的最后一项不是必需的,但它会影响性能,而且我希望一些实体存储在上下文中,而其他实体由GC收集
我想到了手动分离实体:
foreach (var desc in component.Descriptions)
context.ComponentDescription.
我试图在运行时从DbContext获取数据库表名,我发现在EF4.x中不可能获取SSpace项(以及表名),默认情况下,这些操作还没有公共API
但我尝试对此进行一些测试,并且在运行时使用调试器从DbContext获取表名
此语法由Visual Studio生成
((System.Data.Entity.DbContext)(context)).System.Data.Entity.Infrastructure.IObjectContextAdapter.ObjectContext.Metada
当我使用实体框架时,我想在一个上下文中查询出一条记录,并将其添加到另一个具有相同模式的上下文中,在查询出该记录后,我将其从上下文中分离出来,但是相关的实体都离开了,有什么办法解决它吗
提前谢谢 您是否询问如何加载子实体?如果是这样,您可以使用.Include方法进行快速加载。给定Person类和PhoneNumber类,其中Person具有PhoneNumber集合,您可以执行以下操作:
List<Person> People = db.People.Where(p => p.
我正在使用实体框架对数据库进行一些批量操作
CSV文件将由应用程序上载,可以是任意数量的行和列,应用程序将文件上载到服务器上,并创建用于插入数据库的事务。我们使用事务来避免数据垃圾,如果发现任何损坏的数据,我们将回滚整个操作
我的问题是,当我使用更小的文件和更少的数据时,它运行得很好
使用大文件时,我在错误日志中收到了此错误
2012-04-06 12:28:13下午[4]Amit PC[fe80::4c0c:23b9:4c3:bbb8%10]
错误VC.Phoenix.QM.Web.UI.Co
我要先试一试EF模型。我用的是EF4.1
差不多都跟着来了
我已经在模型中将MultilateNewObjects设置为False,并且在选项->数据库工具->O/R设计器中将名称的复数设置为False
这两者都没有任何效果——当我从模型中生成一个新的模式时,表名总是多元化的——有可能禁用它吗?好的——我找到了一种实现我想要的东西的方法——但这是一种相当愚蠢的方法
使用复数名生成db(有趣的是,它只对映射到类型的表进行了多元化处理,而不是为多对多联接自动生成链接表)
手动重命名数据库中的表
从项
使用实体框架(4.3.1.0)处理项目。我试图找出如何使代码作为事务工作,但对我来说,在事务失败后,我的模型似乎不会更新
让我告诉你:
using (TransactionScope trans = new TransactionScope())
{
_database.Units.Add(new Unit{ ... });
var a = false;
if (a)
{
trans.Complete();
Refresh();
是否可以使用EntityFramework 4.3.1并行插入、更新、删除1000个不同的表行
你打算怎么办?并行框架任务?线程?还有别的吗?你可以用TPL来做,但我怀疑EF。使用ADO.NET,如果对同一行进行调用(最有可能是更新),则需要确保每个调用的CommandText都是唯一的。因此,您可能需要在每次更新时创建一个新连接并将其关闭。使用连接池只对选择查询有意义,因为您不这样做;I don’当其他线程也在更新同一个表时,我不希望另一个线程更新同一个表。插入可能不是问题。我也不知道删除会是
我首先使用EF5代码,这样我就可以轻松地针对SQL Compact(供客户使用)和SQL Server(供内部用户使用)。我使用的是DbMigrations,因为它们只是有点不同,所以我必须在迁移过程中编写一些不同的Sql命令
然而,我看不到任何方法来确定运行迁移的目标是什么提供商。我知道EF有这个信息,因为它是我配置文件中连接字符串的一部分,如果我在NuGet命令行上重写连接字符串,它甚至是必需的
有什么想法吗?我不认为ADO.NET团队将此视为迁移的用例。不应该在迁移中使用有条件的每个提供程
因此,我有一个ADO.NET对象,用于通过数据上下文访问数据库
我在两个具有非常相似模式的独立数据库中拥有测试数据。我正在考虑从2个数据库创建2个模型。但我不确定最简单的方法是“切换”模型
理想情况下,我希望能够通过更改一行代码来切换上下文。切换仅用于诊断目的
因为我从几个方法访问这个模型,所以我不能(轻松地)创建数据上下文的静态实例,然后在开始时更改上下文的模型,因为我必须在方法参数中显式声明上下文的类型(然后在每次更改模型时更改类型)
大概是这样的:
(using SF_EntitiesDE
是否可以添加名为“IP”的自定义属性(数据注释),例如:
public class User
{
public int UserId {get; set;}
[IP]
public string UserIP {get; set;}
}
在这种情况下,[IP]包括[MaxLengt(20)]和[Column(“IP”)],或更多其他数据注释
public class User
{
public int UserId {get; set;}
[MaxLength
我正在开发一个系统,该系统使用ToolingFacade从代码内部构建迁移。
该系统在实体框架4.3.1中运行良好。升级到5.0后,我看到在启动工具时加载了正确的实体框架版本,但是当我调用scaffold方法时,我得到以下异常:
Could not load type 'System.Data.Entity.Migrations.Design.ToolingFacade+ScaffoldRunner'
from assembly 'EntityFramework, Version=4.1.0.0
我正在尝试映射必须筛选正确表的自联接,例如SQL,如下所示:
select t2.* from table t
left join table t2
on t2.parentID = t.ID and t2.active=1;
如果我想过滤左表,我可以找出语法:
但我不知道如何筛选正确的表。看起来应该是这样的
// does not work
var query = from t in table
join t2 in table
我正在使用EF5和code-First创建数据库。当实体有Id字段时,EF在数据库中创建主键等字段,并将标识规范设置为真(自动生成值)。如何将标识规范默认设置为false 如果你不想使用身份密钥,你有几个选择
选项1:您可以通过删除StoreGeneratedIdentityKeyConvention全局关闭此功能:
public class YourContext : DbContext {
protected override void OnModelCreating(DbModel
我有一个用户实体,其中存储了我的用户。对于一些用户(管理员),我想添加其他详细信息。
我已经编写了以下代码
public partial class UserProfile
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
[Display(Name = "EMail")]
[Required]
publi
我有以下EF模型:
public class Order
{
public string Id { get; set; }
public IList<OrderLine> Lines { get; set; }
...
}
public class OrderLine
{
public string OrderId { get; set; }
public int Position { get; set; }
...
}
到目
我的域模型包含两种类型的属性CultureInfo和IList。如何将这些映射到数据库 它们无法直接映射,因为没有数据库支持这些类型,因此您必须在域模型中创建另一种类型(可能是复杂对象)保存您感兴趣的CultureInfo的属性,或者第二个选项是将类型作为二进制数据存储在数据库中,为此,您可以将CultureInfo转换为字节流,以获取更多信息。相关问题:
我正在从dbcontext执行标准GetAll():
DbContext.Set<T>()
DbContext.Set()
然而,我从甲骨文那里得到了一个奇怪的信息:
{“ORA-00904:\“Extent1\”\“Sub\u Object\u ID\”:无效标识符“}
如果我查看生成的sql(通过查看查询变量),我会看到在最后添加了一些变量作为强制转换
"Extent1"."SomeEntity_ID", <--
例如,您有一个到已设置的数据库的连接字符串。我意识到您可以“从数据库创建模型”,但我想知道是否有办法通过自动触发来跳过这一步
我想将其集成到一个更大的代码生成程序中,该程序创建VisualStudio解决方案,这就是为什么我想知道这部分是否可以自动化
最终目标是让用户使用常规项目信息(包括他们的连接字符串)填写表单,然后根据提供的连接字符串生成包含.edmx的解决方案(假设另一端有一个初始化的MS SQL db)
谢谢 调用底层实用程序。您可以从命令行调用它
还有很多第三方工具可以做到这一点,其
这是我所面临问题的简化版本。基本上,我有一个现有的数据库,上面有一个代码优先实体框架,有几个表可以看到ObjectId和ObjectType字段。根据ObjectType的不同,该表可以连接到其他几个不共享层次结构的不同表中的一个
例如,给定以下数据库表:
CREATE TABLE BarCode
(
Id int NOT NULL PRIMARY KEY,
ObjectType int NOT NULL,
ObjectId int NOT NULL,
BarCodeValue varchar(
我使用的是EF6和MVC5。我有一个名为MaxScore的方法,见下文。我已经测试了它,它在我的项目中工作。我对单元测试还不熟悉,所以我决定用这种方法进行测试。调试测试时,我得到一个错误,“对象引用未设置为对象的实例”。错误指向下面方法中的第6行。有什么想法吗
以下是我的方法:
private HandicapSystemContext db = new HandicapSystemContext();
public int MaxScore(double handicap)
{
在沃德的文章中:
典型的业务应用程序至少有200个域模型
类型。90%以上的时间是我通过网络发送的数据形状
wire与我的业务模型中实体的形状相同。
…
当客户端实体的形状与
作为服务器端业务实体,我可能会为此切换到DTO
特殊情况
对于我们的应用程序来说,这是一针见血的,但是,为DTO切换某些实体的最佳方式是什么呢
例如,我们的用户实体包含不应向客户端公开的敏感属性。它还具有从其他系统提取并返回到客户端的相关数据,理想情况下,这些数据应该只是客户端用户对象上的额外属性。用户似乎是切换到DTO的
我先用了EF代码。我的域模型如下所示:
public class Book
{
public Book()
{
BookType = new BookType();
BookPlace = new BookPlace();
}
public int ID { get; set; }
public string Name { get; set; }
public string Author { get; set; }
以下代码正在引发first chance异常:
public HttpResponseMessage Get(int id)
{
try
{
var module = _module.ODataQueryable().SingleOrDefault(m => m.ModuleId == id);
return Request.CreateResponse(HttpStatusCode.Created, modu
我使用条令进行批处理。我正在处理大量的实体。为了节省内存,我对使用iterable结果感兴趣。在有关Entity Manager::clear()或Entity Manager::detach的示例中,在批处理操作中调用
如果我错了,请纠正我:
如果处理的实体数量较大,则该实体将
即使在批处理完成后,也要在标识图中保持水分
完成
这可能会导致内存不足
未分离/清除的iTerablerResults将消耗与水合完整结果相同的内存量
为了节省内存,您必须调用clear/detach
如果不分离实
我使用pocos创建了一个相当简单的域模型。我已经使用EntityTypeConfiguration类将它们映射到EF DB上下文。这一切都很好
我现在正试图使用ODataConventionModelBuilder创建一个odatav4webapi控制器端点,这就是问题所在。在遇到不基于约定的关联之前,一切都很正常。但是我找不到方法让ODataBuilder从我的EntityTypeConfiguration类中获取映射
这就给我的手机留下了两个令人不快的选择
用肮脏的属性装饰我可爱干净的P
以下是我如何通过Id获得操作
Operation operation = db.Operations.Find(id):;
我想优化这行代码!因为我不想在id没有值时发送请求。所以我写了下面一行
Operation operation = id.HasValue? db.Operations.Find(id):null;
但我想知道我是否在重新发明轮子!当参数为null时,E.FFind方法是否查询数据库?这很容易使用SQL Server profiler进行测试。针对通用标识上下
我已经用EF6和Code First建立了一个数据库,我正在使用Catel的存储库模式与数据库通信
现在,我想知道如何使用Catel在我的数据库上调用存储过程(甚至是标量值函数)。有什么建议吗?您应该仍然能够像通常那样使用DbContext本身调用存储过程:
using (var dbContextManager = DbContextManager<MyEntities>.GetManager())
{
var dbContext = dbContextManager.Db
我正在使用ASP.Net/MVC/EF/Breeze/Angular开发一个应用程序,它正在我的开发环境中工作。我刚刚将它部署到我的测试环境中,当我试图查询breeze实体数据时,我遇到了一个错误。我认为这不是数据库连接问题,因为我可以成功地查询微风元数据
但是,当我尝试查询实体数据时,例如:
http://server/path/breeze/data/Cities
我得到以下错误:
{"$id":"1","$type":"System.Web.Http.HttpError, System.
我对EF(V6)比较陌生,对级联删除的无数方面和影响它的设置完全感到困惑。我的主要目标是在代码中完成所有必需的设置,而不必去sqlsvrmgmtstudio(SSMS)进行调整;这是代码优先,我希望最终用户能够创建数据库。我的测试模型很简单:
客户
供应商
地址
客户有许多地址
供应商有许多地址
客户和供应商之间没有共享地址
如果我删除客户或供应商,则必须同时删除地址
我不喜欢在地址中有任何导航属性,而是只保留地址,而不参考它的消费者。毕竟这是一个通用类。
除非有人能提出更好的建议,否则我实际上
我是Azure应用服务移动应用程序的新手。我正在尝试了解如何使用TableController向客户端公开复杂的域对象。我使用TableController的目标是利用客户端查询和离线同步
表控制器设计用于在简单DTO上执行CRUD操作。因此,我试图弄清楚一个复杂的域模型如何被公开为TableController设计的DTO
我已经阅读了解释MappedentyDomainManager。该示例显示了DTO和持久对象之间相当简单的映射。但是如果我想让我的映射更复杂呢
例如,假设我有如下持久类型:
在我的web项目中,我尝试使用实体框架6模型优先的方法。模型是从单独项目中的现有数据库生成的。对于模型生成,连接字符串保存在数据访问项目的app.config中。在主web项目中(ASP.NET核心MVC)
我试图在Startup.cs类中注入上下文创建
下面是上下文部分类的代码。之所以使用分部类,是因为上下文是从模板自动生成的
[DbConfigurationType(typeof(EntityFrameworkConfig))]
public partial class MyEntities
我是实体框架的新手,我有一个连接到实体框架的DataGridView,如下所示
dgvDebit.DataSource = (from daily in accountingEntities.DailyAccounts
join voucherdetails in accountingEntities.VoucherDetails on daily.DailyId equals voucherdetails.DailyId
我使用的是dot net core 2.0,我有两个类,定义了多对多关系
每个类都有相应的定义,如下所示:
public virtual ICollection<INSERT_CLASS_HERE> MyObjects { get; set; }
公共虚拟ICollection MyObjects{get;set;}
我发现我可以从DB上下文中检索一个特定的对象作为name或Id,但是创建多个关系的集合却变成了null
我觉得这很简单,但自从我上次接触网络已经有一段时间了。。。更
我遇到异常无法加载以下代码的文件或程序集“System.Configuration.ConfigurationManager”
try
{
Employee oEmployee = new Employee();
using (var ctx = new HelloContext())
{
//something
}
}
我想在tinymce中使用上载图像。
我的控制器代码和布局脚本在那里:
public async Task<IActionResult> uploadFile(IFormFile iformfile)
{
//I upload my file and return location to editor
}
<script>
tinymce.init({
selector: '
我的类中有一个名为“ProcessingTime”的计算属性,它是基于其他属性计算的
[Display(Name = "Processing Time (BD)")]
[DisplayFormat(DataFormatString = "{0:G0} business days")]
[NotMapped]
public int? ProcessingTime
{
get
{
if (FirstSubmissionDate
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 370 页