小编Jon*_*nna的帖子

EntityFramework CTP5 DbContext T4模板"虚拟"关键字

CTP5附带的DbContext T4模板没有关联修正,并且并非所有属性都标记为虚拟.这是否意味着它与上下文断开连接时不支持ChangeTracking?首先,它是否支持ChangeTracking,即使在被Context(通过动态代理)跟踪时也是如此?我发现变更跟踪的要求是所有属性都应标记为虚拟.

与EF4 POCO生成器相比,我们是否正在使用DbContext生成器丢失任何功能?

非常感谢任何回应.

entity-framework entity-framework-ctp5

22
推荐指数
1
解决办法
1448
查看次数

C#POCO T4模板,生成接口?

有谁知道POCO T4模板的任何调整版本,它会产生接口和类?即如果我在.edmx文件中有Movie和Actor实体,我需要获得以下类和接口.

interface IMovie
{
    string MovieName { get; set; }
    ICollection<IActor> Actors { get; set; } //instead of ICollection<Actor>
}

class Movie : IMovie
{
    string MovieName { get; set; }
    ICollection<IActor> Actors { get; set; } //instead of ICollection<Actor>
}

interface IActor
{
    string ActorName { get; set; }
}

class Actor
{
    string ActorName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

另外,为了防止我编写自己的实体,POCO代理(我需要它们用于延迟加载)是否可以使用如上所示的接口声明?

c# entity-framework poco

12
推荐指数
1
解决办法
4541
查看次数

gRPC和WCF有什么区别?

我知道我们正在比较两种不同的技术,但我想知道两者的优缺点.WCF现在已经存在了将近十年.到目前为止,java世界中没有类似的东西吗?

wcf grpc

12
推荐指数
1
解决办法
4856
查看次数

实体框架CTP 5 - 存储库模式 - 进行更新

如何使用DbContext和使用Repository模式对CTP 5进行更新操作?早期使用EF 4.0,可以像下面这样完成.

_context.Customers.AddObject(item);
_context.ObjectStateManager.ChangeObjectState(item, System.Data.EntityState.Modified);
Run Code Online (Sandbox Code Playgroud)

有没有理由说为什么EF不提供更新"断开连接"实体的简单方法.我不想查询数据库并将所有属性复制到从查询返回的对象.换句话说,EF应该具有接收实体的更新方法(类似于Add方法).如果实体密钥已存在于数据库中,请使用当前值更新实体.即为什么我们应该"附加",然后将所有属性复制到附加对象.对我来说,复制实体的所有属性似乎是多余的,只是在"已断开连接"的对象已经存在时进行更新.

entity entity-framework

8
推荐指数
1
解决办法
5074
查看次数

EF 4.1模型第一代码生成工具或模板

是否有直接从数据库生成代码的模板或工具?我想使用模型第一种情况,但不希望.edmx文件用于映射.有一个包含许多表的数据库,我不想为此编写所有类(我很懒).那么,是否有一个模板来生成代码并设置注释/使用流畅的api来自动地从现有数据库定义关系等?

这在以下场景中也会有所帮助.说,我正在使用带有POCO的.edmx,现在我不想在.edmx文件中使用映射.我想要代码中的映射.有一个工具或模板来生成现有数据库代码中的映射会很棒.

我开始学习EF 4.1.我认为"代码首先在版本2中成为模型,即在创建/发布数据库之后(在版本1中)并且需要一些更改".这是真的吗?我很乐意听到一些评论.谢谢.

entity-framework ef-code-first entity-framework-4.1

8
推荐指数
1
解决办法
2659
查看次数

使用odp.net的Oracle实体框架不在linq查询中获取参数

我使用odp.net在Oracle中使用EntityFramework.参数化的sql查询不起作用.

var orderCode = "XYZ";
var set = ctx.Database.SqlQuery<Order>(
    "Select * from dwh.Orders where OrderCode = '{0}'"
    , orderCode
);
Run Code Online (Sandbox Code Playgroud)

(要么)

var set1 = ctx.Database.SqlQuery<Order>(
    "Select * from dwh.Orders where OrderCode = ':param'", 
    new OracleParameter("param", orderCode)
);

Console.WriteLine(set.Count() + ", " + set1.Count()); //Gives 0, 0
Run Code Online (Sandbox Code Playgroud)

但是,如果我有硬编码值,它就可以了.

var set = ctx.Database.SqlQuery<Order>(
    "Select * from dwh.Orders where OrderCode = 'XYZ'",
    orderCode
);
Run Code Online (Sandbox Code Playgroud)

有人知道为什么吗?我在该视图中有150列.那是问题吗?

更新: 使用Oracle参数的查询有效.问题是我在:param变量周围有单引号.

话虽如此,带有"{0}"的热门查询不起作用.此外,以下linq查询不起作用.

var set = ctx.Orders.Where(a => a.OrderCode == orderCode); // Gets zero results.
Run Code Online (Sandbox Code Playgroud)

当我对值进行硬编码时,它可以正常工作并获取结果.

var set …
Run Code Online (Sandbox Code Playgroud)

linq entity-framework odp.net

8
推荐指数
1
解决办法
2648
查看次数

通过html表单提交自定义标题

是否可以通过常规html表单提交和javascript发送自定义标头?Ajax(xmlhttprequest)不是一个选项,我可以使用iframes和javascript而不是xmlhttprequest.有可能吗?

html javascript ajax iframe

7
推荐指数
1
解决办法
3537
查看次数

任务并行库INotifyPropertyChanged不抛出异常?

我有一个wpf项目,我在一个绑定到文本框的属性上使用INotifyPropertyChanged.我正在使用任务(TaskParallelLibrary)在不同的线程上更新此值.它已正确更新,不会抛出异常.我认为它会抛出异常,因为它运行在后台线程而不是UI线程.当然,如果我直接使用UI元素,它会抛出异常.那么,INotifyPropertyChanged绑定机制是否会自动调度到UI线程?

这是我的属性代码.

private string _textProperty = "";
    public string TextProperty
    {
        get
        {
            return _textProperty;
        }
        set
        {
            if (_textProperty != value)
            {
                _textProperty = value;
                NotifyPropertyChanged("TextProperty");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的任务创建是

var task = new Task(() =>
        {
            TextProperty = "ABCD"; // Works.
            // txtBox.Text = "ABCD"; // Throws an exception.
        });
        task.Start();
Run Code Online (Sandbox Code Playgroud)

和XAML中的文本框是 <TextBox Name="txtBox" Text="{Binding TextProperty}"/>

wpf inotifypropertychanged task-parallel-library

5
推荐指数
1
解决办法
1026
查看次数

仍然使用EF 6.0的存储库模式是否有意义?

自从在EF 6.0中引入依赖注入以来,使用Repository模式仍然有意义吗?我认为存储库模式的主要用途是启用抽象和可测试性.现在,他们使用依赖注入完成.那么,我们可以跳过存储库模式并直接在服务层中使用上下文吗?

c# asp.net-mvc entity-framework entity-framework-6

5
推荐指数
0
解决办法
233
查看次数

WP7知道何时在"导航到"页面中按下后退键

在Windows Phone 7中,有没有办法知道在导航到的页面中是否按下了背面?我知道我们可以拦截当前页面,但我需要知道在我导航到的页面中.即如果有2页说第1页和第2页,则在第2页按下后退按钮.我需要知道第1页是否按下了后退按钮.我需要在第1页的后退按钮上运行一些东西.

windows windows-phone-7

4
推荐指数
2
解决办法
4600
查看次数

这种情况在c#方法继承中是否可行

我想知道在C#继承中是否可以使用这种情况.

我们假设我们有3个班级.

public class Base
{   
    public abstract void SomeMethod(Base param);
}

public class ChildA : Base
{   
    public override void SomeMethod(ChildA param);
}

public class ChildB : Base
{   
    public override void SomeMethod(ChildB param);
}
Run Code Online (Sandbox Code Playgroud)

我不希望每次在子类方法中对基础参数进行类型转换.那么,这可能吗?

c# inheritance

4
推荐指数
1
解决办法
242
查看次数

Future 是否有一个新线程?

像下面这样实现的 future 是否会获得一个新线程?显然不是(参见下面的输出)。为什么?如果我希望我的代码在新线程上运行,我该怎么办?

package MyTest

import com.twitter.util._

import scala.language.postfixOps

object Test {

  def test1 = Future {
    println("BeforeTest", Thread.currentThread())
    Thread.sleep(5000)
    println("AfterTest", Thread.currentThread())
  }

  def test2 = test1 onSuccess { case _ => println("Future on success") }

  def main(args: Array[String]): Unit = {

    println("main", Thread.currentThread())
    test2
    println("main123", Thread.currentThread())
  }
}
Run Code Online (Sandbox Code Playgroud)

输出:

(主,线程[运行主-0,5,运行主组-0])

(BeforeTest,线程[run-main-0,5,run-main-group-0])

(AfterTest,线程[run-main-0,5,run-main-group-0])

未来成功

(main123,线程[run-main-0,5,run-main-group-0])

scala twitter-util

3
推荐指数
1
解决办法
833
查看次数