我在带有TreeNodes表的DB中有一个树结构.该表有nodeId,parentId和parameterId.在EF中,结构类似于TreeNode.Children,其中每个子节点都是TreeNode ...我还有一个包含id,name和rootNodeId的Tree表.
在一天结束时,我想将树加载到TreeView中,但我无法想象如何一次加载它.我试过了:
var trees = from t in context.TreeSet.Include("Root").Include("Root.Children").Include("Root.Children.Parameter")
.Include("Root.Children.Children")
where t.ID == id
select t;
Run Code Online (Sandbox Code Playgroud)
这将使我成为前两代而不是更多.如何使用所有代和其他数据加载整个树?
在这里和这里阅读问题让我对这种情况有所了解,似乎使用AsEnumerable是内存消耗.有没有更好的方法来实现这个LINQ以及现在的方式,数据是否可靠?
删除AsEnumerable导致"除了Contains运算符之外,本地序列不能用于查询运算符的LINQ to SQL实现".
var results = from p in pollcards.AsEnumerable()
join s in spoils.AsEnumerable() on new { Ocr = p.OCR, fileName = p.PrintFilename } equals new { Ocr = s.seq, fileName = s.inputFileName }
where p.Version == null
orderby s.fileOrdering, s.seq
select new ReportSpoilsEntity
{
seq = s.seq,
fileOrdering = s.fileOrdering,
inputFileName = s.inputFileName,
Ocr = p.OCR,
ElectorName = p.ElectorName
};
Run Code Online (Sandbox Code Playgroud) 在EF 4.0中,如果我理解正确,实体中有两种类型的值:当前值和原始值.
我们可以通过调用ApplyOriginalValues(TEntity)方法设置原始值但是如何获取原始值?
两者有什么区别?
是否应该在一个实体上使用一个或两个?
我在visual studio 2012上编码并使用实体模型作为我的数据层.但是,使用Linq语句的下拉控件往往会在页面尝试加载时抛出未处理的异常(上面标题).这是我的代码如下;
using (AdventureWorksEntities dw = new AdventureWorksEntities())
{
ddlCon.DataSource = (from em in dw.Employees
select new { em.Title, em.EmployeeID });
ddlCon.DataTextField = "Title";
ddlCon.DataValueField = "EmployeeID";
ddlCon.DataBind();
ddlCon.Items.Insert(0, new ListItem("--Select--", "--Select--"));
}
Run Code Online (Sandbox Code Playgroud)
我的团队非常努力地坚持使用Domain Driven Design作为架构策略.但是,在大多数情况下,我们的域实体非常有限.我们希望在我们的域实体上添加更多业务/域行为.
例如,Active Record将数据访问权限放在实体上.我们不希望这样,因为我们乐于使用存储库模式进行数据访问.
此外,我们将我们的软件设计为SOLID(Bob叔叔放在一起的五个软件设计原则).因此,在设计我们的实体时,我们注意单一责任,开放闭合,liskov,接口隔离和依赖性反转对我们很重要.
那么,我们应该包括哪些行为?我们应该远离什么样的?
我在我的解决方案中使用Entity Framework 6和"模型优先",我将"数据模型"类分离到另一个项目中,这样我就可以添加对"数据模型"类的引用,而不会暴露我的"数据模型上下文"和连接.我不想将我的实体数据模型项目(尤其是数据库上下文等)暴露给我的UI层.我有这个:

我现在已经成功地将我的自动生成的实体类与我的数据模型分开了,我尝试通过在项目Mapeo.BusinessEntity中更新实体或属性来实现它.
这是我在DatabaseLayer(Mapeo.DatabaseModel)中的连接字符串
<connectionStrings>
<add name="MapeoModelContainer" connectionString="metadata=res://*/MapeoModel.csdl|res://*/MapeoModel.ssdl|res://*/MapeoModel.msl;provider=System.Data.SqlClient;provider connection string="data source=raranibar\ral;initial catalog=Mapeo;user id=sa;password=*****;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
在我的服务层中,我将此连接字符串复制到App.config,我的问题是当我想要添加数据时,我有此消息:无法加载指定的元数据资源如何解决此问题?

更新 我找到了解决方案,我更改了App.Config中的连接字符串我在连接strign"*"中替换了我的情况下的DataModel目录(Mapeo.DatabaseModel)中的pretentation层现在这是我在图层演示中的连接字符串:
<connectionStrings>
<add name="MapeoModelContainer" connectionString="metadata=res://Mapeo.DatabaseModel/MapeoModel.csdl|res://Mapeo.DatabaseModel/MapeoModel.ssdl|res://Mapeo.DatabaseModel/MapeoModel.msl;provider=System.Data.SqlClient;provider connection string="data source=raranibar\ral;initial catalog=Mapeo;user id=sa;password=scugua;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud) c# entity entity-framework entity-framework-4 entity-framework-5
我的解决方案中有3个类项目.1. MVC4项目2.域3.测试
在MVC4项目中,我添加了一个带有连接字符串的web.config文件
<add name="EfDbContext" connectionString="Data Source=.;Initial Catalog=SportsStore;Integrated Security=true;" providerName="System.Data.SqlClient"/>
Run Code Online (Sandbox Code Playgroud)
我在Domain项目中有一个名为EfDbContext的类,它继承了DbContext.
当我在浏览器中查看网站时,我收到服务器未找到错误.
我调试了EfDbContext类,发现Database.Connection.ConnectionString设置为\ SqlExpress,数据库为EfDbContext.
这是为什么?
如何在JPA中持久化Entty类型的数组列表?
例如,有一个名为"Table"的实体.我正在创建一个数组列表ArrayList<Table> table = new ArrayList<Table>();
试图使用entityManager.persist(table);它来保持它并且它不起作用.对此有何解决方案?
我想知道是否有一种方法可以在刷新之前比较实体内的验证器中的旧值和新值.
我有一个Server实体,可以呈现一个形式.该实体具有对关系status(N-> 1),其中,当状态从Unracked到Racked,需要检查SSH和FTP对服务器的访问.如果未实现访问,则验证器应该失败.
我已映射验证程序回调方法isServerValid()的内Server如这里所描述的实体
http://symfony.com/doc/current/reference/constraints/Callback.html.我可以通过显然访问'新'值$this->status,但我怎样才能获得原始值?
在伪代码中,这样的东西:
public function isAuthorValid(ExecutionContextInterface $context)
{
$original = ... ; // get old values
if( $this->status !== $original->status && $this->status === 'Racked' && $original->status === 'Unracked' )
{
// check ftp and ssh connection
// $context->addViolationAt('status', 'Unable to connect etc etc');
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
entity ×10
c# ×3
jpa ×2
linq ×2
arraylist ×1
code-first ×1
data-binding ×1
doctrine-orm ×1
enumerable ×1
frameworks ×1
hibernate ×1
immutability ×1
java ×1
load ×1
persist ×1
php ×1
recursion ×1
symfony ×1
validation ×1