写入数据库时出现此错误:
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)
架构是:

我正在编写一个链表来包围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) 我对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) 在我的解决方案中,我有单元测试,它不依赖于数据库,而是具有外部依赖性(如数据库)的模拟和集成测试.
当我使用模拟进行单元测试时,使用LINQ to Object.当集成测试或实际程序运行时,使用LINQ to Entities,它比LINQ to Object更严格.
有没有办法在单元测试中复制LINQ To Object更严格的行为?
我已经开始研究一个包含1800多个功能/集成测试的现有项目.这些都是用MSTest编码的.
其中许多直接连接到SQL Server数据库.数据库由代码生成器生成,代码生成器在许多方面创建数据库.生成数据库很慢而且很麻烦.
这有以下问题:
我希望现有的测试不依赖于这样的安装,如果可能的话运行得更快,而不必通过代码生成器,杂耍连接字符串等来处理维护数据库.
我试图尽快实现这一点,因为重写测试不在预算范围内.我已经引入了模拟来帮助新测试减少对数据库的依赖,我现在的问题是现有的测试.
我的第一个是改变我们的基本单元测试类连接到一个SQLite数据库,它将由代码生成器创建,该代码生成器已经生成了主数据库而不是SQL Server数据库.然后可以删除SQLite并将其重新复制到每次运行之间的测试文件夹中.这本来很快,不需要2个SQL Server数据库,事实上如果只是运行测试,则不需要SQL Server安装.
我的问题是生成的代码使用了SQLite中没有包含的许多概念; T-SQL,SQL Server特定语法,模式,存储过程和嵌入式clr程序集.
然后我尝试了SQL Server CE 4,它有许多与SQLite相同的限制.
除了重写代码以与SQLite(或CE)兼容,重写现有测试或我们维护2 seperatedb的系统之外,还有其他可用的替代方案吗?
编辑:将单元测试更改为功能测试,澄清了一些事情.把一些东西放大胆.我同意这些测试不是适当的单元测试.我同意嘲笑在这里会很好.我想要做的是尝试解决我面临的混乱局面.
我正在使用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文档,它说单个感叹号用于表示本地数据类型.
为什么这会在以空格开头的字符串上发生?
几乎任何你能想到的功能都可以将列表减少为1个元素,可以表示为折叠.[...]这意味着折叠是通用的,你可以在带有折叠的列表上实现几乎任何其他递归函数
我在编写一个带有列表并将其减少为1个元素的函数时的第一个想法是使用递归.
有哪些指导方针可以帮助我决定是使用递归还是折叠?
这是一种风格考虑还是还有其他因素(性能,可读性等)?
在我的Prism应用程序中,MEF容器可以通过Container属性从Bootstrapper类中获得.
但它不是来自类模块(IModule).我只能通过IServiceLocator导入容器.
为什么?我认为使用针对具体技术的通用接口是有意义的,但Prism 4.1指南要求我们不要使用IServiceLocator(在使用IServiceLocator的注意事项中).
我写了一些基本的示例代码来熟悉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) Double数据类型无法正确表示某些基数为10的值.这是因为浮点数代表实数.这意味着当表示货币值时,应该使用十进制值类型来防止错误.(随意更正此序言中的错误)
我想知道的是,在标准.Net框架中64位架构下的双数据类型下出现这样一个问题的值是什么(C#如果有所不同)?
我希望答案是一个公式或规则来找到这样的值,但我也想要一些示例值.
情况:
我有一种情况,我想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,我会全力以赴.