小编Gil*_*les的帖子

ReferentialConstraint中的依赖属性映射到存储生成的列

写入数据库时​​出现此错误:

ReferentialConstraint中的依赖属性映射到存储生成的列.栏目:'PaymentId'.

public bool PayForItem(int terminalId, double paymentAmount, 
      eNums.MasterCategoryEnum  mastercategoryEnum, int CategoryId, int CategoryItemId)
    {

        using (var dbEntities = new DatabaseAccess.Schema.EntityModel())
        {
            int pinnumber = 0;
            long pinid = 1; //getPinId(terminalId,ref pinnumber) ;
            var payment = new DatabaseAccess.Schema.Payment();
            payment.CategoryId = CategoryId;
            payment.ItemCategoryId = CategoryItemId;
            payment.PaymentAmount = (decimal)paymentAmount;
            payment.TerminalId = terminalId;
            payment.PinId = pinid;

            payment.HSBCResponseCode = "";
            payment.DateActivated = DateTime.Now;
            payment.PaymentString = "Payment";
            payment.PromotionalOfferId = 1;
            payment.PaymentStatusId = (int)eNums.PaymentStatus.Paid;

            //payment.PaymentId = 1;

            dbEntities.AddToPayments(payment);
            dbEntities.SaveChanges();
        }
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

架构是:

在此输入图像描述

c# sql-server-2008 linq-to-sql entity-framework-4

94
推荐指数
4
解决办法
7万
查看次数

尝试转让所有权时,无法摆脱借来的内容

我正在编写一个链表来包围Rust的生命周期,所有权和引用.我有以下代码:

pub struct LinkedList {
    head: Option<Box<LinkedListNode>>,
}

pub struct LinkedListNode {
    next: Option<Box<LinkedListNode>>,
}

impl LinkedList {
    pub fn new() -> LinkedList {
        LinkedList { head: None }
    }

    pub fn prepend_value(&mut self) {
        let mut new_node = LinkedListNode { next: None };

        match self.head {
            Some(ref head) => new_node.next = Some(*head),
            None => new_node.next = None,
        };

        self.head = Some(Box::new(new_node));
    }
}

fn main() {}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下编译错误:

error[E0507]: cannot move out of borrowed content
  --> src/main.rs:18:52
   |
18 | …
Run Code Online (Sandbox Code Playgroud)

reference move-semantics rust borrow-checker

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

C#Singleton模式和MEF

我对Singleton Pattern和MEF有疑问.我是实施MEF插件的新手,我还没有找到答案.

是否可以通过MEF实现的插件只提供一个类的实例?

我的老班是这样的:


  #region Singleton
  /// 
  /// This class provide a generic and thread-safe interface for Singleton classes.
  /// 
  /// The specialized singleton which is derived
  /// from SingletonBase<T>
  public abstract class Base where T : Base
  {
    /* the lock object */
    private static object _lock = new object();

    /* the static instance */
    private static T _instance = null;
    /// 
    /// Get the unique instance of .
    /// This property is thread-safe!
    /// 
    public static T Instance …
Run Code Online (Sandbox Code Playgroud)

c# singleton mef

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

在使用LINQ to Object的单元测试中复制LINQ to Entities行为

在我的解决方案中,我有单元测试,它不依赖于数据库,而是具有外部依赖性(如数据库)的模拟和集成测试.

当我使用模拟进行单元测试时,使用LINQ to Object.当集成测试或实际程序运行时,使用LINQ to Entities,它比LINQ to Object更严格.

有没有办法在单元测试中复制LINQ To Object更严格的行为?

linq unit-testing entity-framework

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

在数据库上运行测试的策略

我已经开始研究一个包含1800多个功能/集成测试的现有项目.这些都是用MSTest编码的.

其中许多直接连接到SQL Server数据库.数据库由代码生成器生成,代码生成器在许多方面创建数据库.生成数据库很慢而且很麻烦.

这有以下问题:

  • 测试清理db,这意味着我们必须为测试维护一个单独的db,而另一个使用该应用程序.现在的过程是在运行测试和运行应用程序之间进行更改时更改数据库.
  • 每个分支都需要拥有自己的数据库,因为每个数据库中的数据库模型可能不同(这意味着每个分支有2个数据库,步骤1)
  • 这很慢
  • 必须安装SQL Server和db才能运行测试

我希望现有的测试不依赖于这样的安装,如果可能的话运行得更快,而不必通过代码生成器,杂耍连接字符串等来处理维护数据库.

我试图尽快实现这一点,因为重写测试不在预算范围内.我已经引入了模拟来帮助新测试减少对数据库的依赖,我现在的问题是现有的测试.

我的第一个是改变我们的基本单元测试类连接到一个SQLite数据库,它将由代码生成器创建,该代码生成器已经生成了主数据库而不是SQL Server数据库.然后可以删除SQLite并将其重新复制到每次运行之间的测试文件夹中.这本来很快,不需要2个SQL Server数据库,事实上如果只是运行测试,则不需要SQL Server安装.

我的问题是生成的代码使用了SQLite中没有包含的许多概念; T-SQL,SQL Server特定语法,模式,存储过程和嵌入式clr程序集.

然后我尝试了SQL Server CE 4,它有许多与SQLite相同的限制.

除了重写代码以与SQLite(或CE)兼容,重写现有测试或我们维护2 seperatedb的系统之外,还有其他可用的替代方案吗?

编辑:将单元测试更改为功能测试,澄清了一些事情.把一些东西放大胆.我同意这些测试不是适当的单元测试.我同意嘲笑在这里会很好.我想要做的是尝试解决我面临的混乱局面.

.net sql-server testing mstest

7
推荐指数
3
解决办法
1991
查看次数

为什么字符串以空格转换为:!'使用Ruby/YAML

我正在使用YAML将Ruby哈希写入文件.

File.open(output_file, "w") {|file| file.puts YAML::dump(final)}
Run Code Online (Sandbox Code Playgroud)

哈希包含字符串作为键,浮点数作为值.

当我的字符串只包含字母时,它们会在文件文件中输出:

abc: 1.0
bcd: 1.0
cde: 1.0
Run Code Online (Sandbox Code Playgroud)

当一个字符串以空格开头时,它会这样输出:

! ' ab': 1.0
Run Code Online (Sandbox Code Playgroud)

当我再次读回文件时,一切都还可以,但我想知道为什么会这样,这是什么意思.

我搜索了YAML文档,它说单个感叹号用于表示本地数据类型.

为什么这会在以空格开头的字符串上发生?

ruby yaml

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

在Erlang中折叠与递归

了解一些Erlang:

几乎任何你能想到的功能都可以将列表减少为1个元素,可以表示为折叠.[...]这意味着折叠是通用的,你可以在带有折叠的列表上实现几乎任何其他递归函数

我在编写一个带有列表并将其减少为1个元素的函数时的第一个想法是使用递归.

有哪些指导方针可以帮助我决定是使用递归还是折叠?

这是一种风格考虑还是还有其他因素(性能,可读性等)?

erlang recursion fold

6
推荐指数
2
解决办法
3610
查看次数

为什么模块中没有MEF-container?

在我的Prism应用程序中,MEF容器可以通过Container属性从Bootstrapper类中获得.

但它不是来自类模块(IModule).我只能通过IServiceLocator导入容器.

为什么?我认为使用针对具体技术的通用接口是有意义的,但Prism 4.1指南要求我们不要使用IServiceLocator(在使用IServiceLocator的注意事项中).

containers prism mef

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

为什么我的AsOrdered PLINQ查询比我的无序查询更快

我写了一些基本的示例代码来熟悉PLINQ.

我遇到了一些奇怪的东西.我不知道我的代码中是错误还是我对PLINQ的理解错误.

MSDN文档指出,添加AsOrdered()将以可能的性能成本保留调用的顺序.

我写了一些单元测试,并注意到文档中所述的对结果集的顺序的影响.但我已经看到了对性能的负面影响.

这是我的方法:

public IEnumerable<int> ParallelCalculatePrimesUpTo(int maxValue)
{
    return from number in Enumerable.Range(1, maxValue).AsParallel()
            where IsPrime(number)
            select number;
}

public IEnumerable<int> OrderedParallelCalculatePrimesUpTo(int maxValue)
{
    return from number in Enumerable.Range(1, maxValue).AsParallel().AsOrdered()
            where IsPrime(number)
            select number;
}
Run Code Online (Sandbox Code Playgroud)

而我非常简单的基准测试

    [TestMethod]
    public void SimplisticBenchmark6()
    {
        var primeNumberCalculator = new PrimeNumberCalculator();

        var startTime = DateTime.Now;

        primeNumberCalculator.ParallelCalculatePrimesUpTo(10000000).ToList();

        var totalTime = DateTime.Now - startTime;

        Console.WriteLine(totalTime);
    }

    [TestMethod]
    public void SimplisticBenchmark7()
    {
        var primeNumberCalculator = new PrimeNumberCalculator();

        var startTime = DateTime.Now;

        primeNumberCalculator.OrderedParallelCalculatePrimesUpTo(10000000).ToList();

        var totalTime = DateTime.Now …
Run Code Online (Sandbox Code Playgroud)

.net c# plinq

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

双精度值无法正确表示哪些值

Double数据类型无法正确表示某些基数为10的值.这是因为浮点数代表实数.这意味着当表示货币值时,应该使用十进制值类型来防止错误.(随意更正此序言中的错误)

我想知道的是,在标准.Net框架中64位架构下的双数据类型下出现这样一个问题的值是什么(C#如果有所不同)?

我希望答案是一个公式或规则来找到这样的值,但我也想要一些示例值.

.net c# floating-point double decimal

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

如何从Vector创建非消耗迭代器

情况:

我有一种情况,我想Iterator在函数参数上调用特征上定义的一些方法.我想称之为的函数是获取一个被trait调用类型的参数VecLike.该函数被调用get_all_matching_rules.

get_all_matching_rules可以接收一个Vec或另一个类似的自制类型,也可以实现Iterator.当然这两个都实现了VecLike.我正在考虑添加一个函数VecLike让它返回一个Iterator以便我可以使用它get_all_matching_rules.

如果我的参数被命名:matching_rules我可以这样做matching_rules.iter().filter(.

题:

如何从一个非消耗迭代器返回Vec

我希望能够在Vec<T>类型上返回非消耗迭代器Iterator<T>.我不打算通过调用来迭代这些项目.iter().

如果我有(自我是Vec):

fn iter<'a>(&'a self) -> Iterator<T> {
    self.iter()
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

error: mismatched types: expected `core::iter::Iterator<T>+'a`, found `core::slice::Items<'_,T>` (expected trait core::iter::Iterator, found struct core::slice::Items)
Run Code Online (Sandbox Code Playgroud)

我想回来Iterator<t>.如果有更好的方法去做这件事而不是回归Iterator,我会全力以赴.

rust

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

在MEF中编写零件后自动调用方法

有没有办法指定在编写零件后自动调用方法?可以在组成部分或执行组合的类中调用该方法.

.net mef

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

转到Visual Studio 2015中的角色而不是转到行

我提前道歉,这感觉就像一个非常愚蠢的问题,但我真的被卡住了.

我收到以下错误:

在此输入图像描述

我的主要问题是蓝色的.这是错误的字符位置吗?如果是这样,我如何在Visual Studio的c#代码中跳转到它?

c# visual-studio-2015

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