小编skj*_*ini的帖子

在Entity Framework中动态创建DbSet <T>?

在LINQ to SQL中,我可以使用动态创建存储库DataContext.GetTable<T>.是否有类似的方法在Entity Framework 4中执行此操作,而不是声明特定的属性DbContext?例如:

public MyDbContext: DbContext
{
    public DbSet<MySet> MySets {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何MySets动态创建/获取动态参考,因为我可以使用LINQ to SQL,如下所示:

var mySet = MyDbContext.GetTable<MySet>();
Run Code Online (Sandbox Code Playgroud)

c# linq-to-sql entity-framework-4 ef-code-first dbset

23
推荐指数
2
解决办法
3万
查看次数

Flutter:从 WebView 加载 IFrame

我正在寻找一种从 Flutter WebView ( webview_flutter: ^0.1.2) 加载 iFrame 的方法,但找不到任何相关信息。

                 Container(
                    child: WebView(
                      initialUrl: 'https://www.youtube.com/embed/abc',
                      javaScriptMode: JavaScriptMode.unrestricted,
                    )),
Run Code Online (Sandbox Code Playgroud)

知道如何将 IFrame 传递给 Webview,它会作为 initialUrl 的一部分吗?,我已经尝试过相同的方法,但它没有正确加载。

android webview flutter

17
推荐指数
2
解决办法
2万
查看次数

如何在Action上单元测试BeginInvoke

我正在寻找一种在Action方法上测试BeginInvoke的方法,因为该方法在后台线程上运行,无法知道它何时实际完成或调用回调方法.我正在寻找一种方法来保持我的测试等待,直到在进行断言之前调用回调.

在下面的Presenter类中,您可以注意到我在后台线程上调用PopulateView,它在获取数据时更新视图,并且我正在尝试断言视图属性已正确初始化.

我正在使用NUnit和Moq.

public class Presenter
{
    private IView _view;
    private IService _service;
    public Presenter(IView view, IService service)
    {
        _view = view;
        _service = service;

        Action action = PopulateView;  
        action.BeginInvoke(PopulateViewCallback, action);
    }
    private void PopulateViewCallback(IAsyncResult ar)
    {
            try
            {
                Action target = (Action)ar.AsyncState;
                target.EndInvoke(ar);
            }
            catch (Exception ex)
            {
                Logger.Instance.LogException("Failed to initialize view", ex);
            }
    }

     private void PopulateView()
     {
          Thread.Sleep(2000); // Fetch data _service.DoSomeThing()
          _view.Property1 = "xyz";
     }  
}
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing begininvoke

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

如何使用Group by在Linq语句中引入Let关键字

我有以下带有'group by'子句的Linq语句,并想知道如何引入let或任何其他语句以避免重复子查询,lifecycleEvents.Where(i => i.LifecycleEventId == grouping.Key).First()在下面的示例中

var completionTimeModels =
    from timeline in processTimelines 
    group timeline by timeline.LifecycleEventId into grouping
    select new CompletionTimeViewModel()
    {
        // How to avoid repeating the same query to find the life cycle event?
        Name = lifecycleEvents.Where(i => i.LifecycleEventId == grouping.Key).First().LifecycleEventName,
        DisplayName = lifecycleEvents.Where(i => i.LifecycleEventId == grouping.Key).First().LifecycleEventDisplayName
    };
Run Code Online (Sandbox Code Playgroud)

.net c# linq group-by

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

测试WCF事务超时

我使用netTcp绑定在WCF客户端和服务之间使用事务.我启用了DTC,交易按预期流动.

我想测试事务超时.

客户端启动事务为

using (TransactionScope scope = 
    new TransactionScope(TransactionScopeOption.Required,new TimeSpan(0,0,1,0)))
    {
     ...
Run Code Online (Sandbox Code Playgroud)

在服务上,我已启用超时的事务行为

<behavior name="Services.Behavior.NetTcp">
          <serviceTimeouts transactionTimeout="00:00:01"/>
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
Run Code Online (Sandbox Code Playgroud)

和服务终点,

<service behaviorConfiguration="Services.Behavior.NetTcp"
    name="Services.Accounts.AccountsService">
    <endpoint binding="netTcpBinding" bindingConfiguration="TranNetTcpBinding"
      contract="Services.Accounts.Interfaces.IAccountsService" />
    <endpoint address="mex" binding="mexTcpBinding" name="MexTcp" contract="Services.Accounts.Interfaces.IAccountsService" />
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:2222/Accounts"/>
      </baseAddresses>
    </host>
  </service>
Run Code Online (Sandbox Code Playgroud)

并使用默认的服务默认事务范围

using (TransactionScope ts = new TransactionScope())
{
Run Code Online (Sandbox Code Playgroud)

但我没有从服务中获得交易超时.如果我从1分钟减少客户端超时,我可以看到交易超时.

我知道如果我在服务上使用事务选项,它将不会从配置文件中读取超时值,这里我没有使用任何这些选项.

知道为什么即使transactionTimeout为1秒,事务也没有从服务中超时,这在我的情况下还不足以完成操作.

如何在运行时检查服务上设置的超时值?

更新1:
来自编程WCF服务中的Jual Lowy书:
当事务流入配置了比传入事务更短的超时的服务时,事务采用服务的超时,服务将强制执行更短的超时.当事务流入配置了超过传入事务的超时的服务时,服务配置不起作用.

来自Lerox Bustamante:来自网络广播 提到服务超时如果加入现有交易就没有效果,与Jual所说的完全相反.

更新2:
从测试我可以确认Bustamante是正确的.如果我在Service接口中的方法签名上应用以下属性,

[TransactionFlow(TransactionFlowOption.NotAllowed)]
Run Code Online (Sandbox Code Playgroud)

由于在Service实现中使用了属性,因此不允许客户端事务流动,并创建新事务,

[OperationBehavior(TransactionScopeRequired = true)]
Run Code Online (Sandbox Code Playgroud)

从服务配置文件中获取指定的超时时间并正确超时.

谢谢

c# wcf transactions

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

WPF Interaction在Style中触发,以在View Model上调用命令

可能重复:
如何在样式设置器中添加混合行为

当我在样式中使用交互触发器时,我收到以下错误,'触发器不是类型样式的可附加元素'.任何解释这个错误实际意味着什么以及如何解决它.

有关参考,请参阅MVVM Light工具包的EventToCommand示例.

在这种特殊情况下,我使用来自Infragistics的Timeline控件,它将事件表示为EventTitle,当单击EventTitle时,我想提出命令(请注意,Timeline控件不会定义任何事件,如EventTitleClicked).目前我能够通过使用事件并从后面的代码调用我的ViewModel方法来实现功能,而不是直接从xaml调用命令.

<Style x:Key="EventTitleTopStyle" TargetType="igTl:EventTitle">
    <!-- The following is not working -->
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="MouseLeftButtonDown">
            <!--<cmd:EventToCommand Command="{Binding MyCommand}" />-->
        </i:EventTrigger>
    </i:Interaction.Triggers>

   <!-- Using event setter instead to achieve the same -->
    <EventSetter Event="MouseLeftButtonDown" Handler="TopTitleMouseLeftButtonDown" />
    ....
Run Code Online (Sandbox Code Playgroud)

wpf xaml icommand

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

如何找到影响 WPF 中控件外观的样式

如果有很多样式影响同一控件,那么确定运行时使用的样式的最佳方法是什么。似乎很难找到影响设计时的正确样式,因为所使用的样式和画笔可以应用于不同的级别。

例如:我有一个由行和单元格组成的数据网格。当我将鼠标悬停在单元格上时,它会影响边框厚度(从 0,0,1,1 到 0,0,1,0),并且我似乎找不到哪种样式正在影响更改。

wpf styles

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

Flutter:如何避免在现有路线上推同一条路线

我有底部导航栏的视图,当您按下导航栏项目时,新的路线将被推送到视图中。

 final navigatorKey = GlobalKey<NavigatorState>();

 @override
  Widget build(BuildContext context) => MaterialApp(
    home: Scaffold(
      key: _scaffoldKey,
      body: _buildBody(context),
      bottomNavigationBar: _buildBottomNavigationBar(context),
    ),
  );

 void routeToView(routeIndex) {
      navigatorKey.currentState.pushNamed(pagesRouteFactories.keys.toList()[routeIndex]);
  }
Run Code Online (Sandbox Code Playgroud)

我想防止在当前视图上推送相同的路由。我想将当前路线与我们尝试推入的新路线进行比较,如果相同则忽略推入路线。

如果要尝试的路线与我相同,我想将视图滚动到顶部

有任何想法吗。

flutter

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

在使用GCP的数据存储区时,如何区分代码是在模拟器中还是在GKE中运行

按照https://cloud.google.com/datastore/docs/tools/datastore-emulator中的说明,我不确定是否遗漏了任何内容

除非我使用DataStoreClient显式创建数据存储,否则我无法连接到本地模拟器.

DatastoreDb db = DatastoreDb.Create(projectId, string.Empty, new DatastoreClientImpl(
                new Datastore.DatastoreClient(
                    new Channel("localhost", 8081, ChannelCredentials.Insecure)), new DatastoreSettings()));
Run Code Online (Sandbox Code Playgroud)

而不仅仅是 DatastoreDb.Create(projectId);

如果我们在GKE中进行生产,我们需要连接到实际的数据存储而不是模拟器,我们如何区分具有相同代码库的两个版本.

有没有办法检查代码是否正在运行GKE,或者这是应该通过环境变量来完成的,以获得最佳结果.

c# google-cloud-datastore google-cloud-platform google-kubernetes-engine

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

为什么traits不具有Context Bounds的参数

这里:ClassTag:Trait上不允许使用TypeTag基类定义,因为它们被视为Context Bounds

我可以使它成为抽象类,但我失去了多继承的好处

import scala.reflect.ClassTag
import reflect.runtime.universe.TypeTag
import org.apache.spark.sql.Dataset

trait DataProcessor[T <: Product : ClassTag : TypeTag, U <: Product : ClassTag : TypeTag] {
  def performAnalysis(inputDs: Dataset[T]): Dataset[U]
}
Run Code Online (Sandbox Code Playgroud)

generics scala

2
推荐指数
1
解决办法
103
查看次数

为.Net Core选择正确版本的GCP数据存储库

对于GCP的数据存储区,我看到两个版本的Nuget,不确定它们之间有什么区别,以及在使用.Net Core应用程序时要使用哪个版本

Google.Cloud.Datastore.V1
Google.Apis.Datastore.v1beta3
Run Code Online (Sandbox Code Playgroud)

第二个似乎最近更新了虽然在https://cloud.google.com/datastore/docs/reference/libraries#client-libraries-install-csharp使用第一个示例应用程序.

c# google-cloud-datastore google-cloud-platform .net-core

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

使用Spark独立集群如何在工作节点上管理多个执行者?

到目前为止,我只在YARN作为资源管理器的Hadoop集群上使用了Spark。在这种类型的集群中,我确切地知道要运行多少个执行程序以及资源管理的工作方式。但是,知道我正在尝试使用独立Spark集群,我有些困惑。纠正我在哪里我错了。

本文中,默认情况下,辅助节点使用该节点的所有内存减去1 GB。但我知道通过使用SPARK_WORKER_MEMORY,我们可以使用更少的内存。例如,如果节点的总内存为32 GB,但我指定了16 GB,那么Spark worker是否在该节点上使用的内存不会超过16 GB?

但是执行者呢?让我们说如果我要在每个节点上运行2个执行程序,是否可以通过将期间的执行程序内存指定spark-submit为的一半来执行此操作SPARK_WORKER_MEMORY,是否要在每个节点上运行4个执行程序,通过将执行程序内存指定为四分之一的值来执行此操作SPARK_WORKER_MEMORY

如果是这样的话,我认为,除了执行程序内存外,我还必须正确指定执行程序核心。例如,如果我要在一个工人上运行4个执行程序,则必须将执行程序核心指定为SPARK_WORKER_CORES?的四分之一。如果我指定一个更大的数字会怎样?我的意思是,如果我将执行程序的内存指定为内存的四分之一SPARK_WORKER_MEMORY,但是执行程序的核心仅是内存的一半SPARK_WORKER_CORES?在这种情况下,我将让2或4个执行程序在该节点上运行吗?

hadoop scala cluster-computing apache-spark apache-spark-standalone

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

Google Cloud (GCP) Pub/Sub 是否支持与 Kafka 中的 ConsumerGroups 类似的功能

尝试在 Google Cloud (GCP) Pub/Sub 与 Manager Kafka Service 之间做出选择。

在最新的更新中,Pub/Sub 添加了对重放之前处理过的消息的支持,这是一个值得欢迎的变化。

我在他们的文档中找不到的一个功能是,我们是否可以拥有类似于 Kafka 消费者组的功能,即拥有一组订阅者,每个订阅者处理来自同一主题的数据,并且能够从头开始重新处理数据订阅者(消费群体)而其他人则不受其影响。例如:

假设您有一个主题 StockTicks

你有两个消费者群体

CG1:有两个消费者
CG2:有另外两个消费者

在 Kafka 中,我可以独立读取这些组之间的消息,但我可以使用 Pub/Sub 做同样的事情吗?

而且Kafka允许你从头开始重放消息,我可以对Pub/Sub做同样的事情吗?如果我不能重放CG创建之前发布的消息,我可以,但是我可以重放CG创建之后提交的消息吗? CG/订阅者已创建?

apache-kafka google-cloud-platform google-cloud-pubsub kafka-consumer-api

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