我正和某人谈论实体框架,我还没有真正参与其中,但我想学习它.但是,我是否应该学习它仍然有点困惑.我听说很多人说你不应该使用实体框架,但我没有听到任何争论为什么会这样.
所以我的问题是,与其他产品相比,使用实体框架的专业和利益是什么.喜欢
在易用性,可测试性,语义方面......
我知道有一些重复的 问题.但他们都有点过时(2008,2009),说实话,这些论点也缺乏一些东西.我知道实体框架4.0可用,但我还没有找到一个好的(完整的)比较.
这里的一些好人通过解释不同框架的一些细节来回答我的问题.认为将它们展示在这里以供将来参考可能会很好.
如果你试图找出int是否在数字之间,为什么不能这样做:
if(10 < x < 20)
Run Code Online (Sandbox Code Playgroud)
而不是它,你将不得不这样做
if(10<x && x<20)
Run Code Online (Sandbox Code Playgroud)
这似乎有点开销.
我有以下HTML
(..)
<tbody>
<tr>
<td class="name"> Test1 </td>
<td class="data"> Data </td>
<td class="data2"> Data 2 </td>
</tr>
<tr>
<td class="name"> Test2 </td>
<td class="data"> Data2 </td>
<td class="data2"> Data 2 </td>
</tr>
</tbody>
(..)
Run Code Online (Sandbox Code Playgroud)
我的信息是name => so"Test1"和"Test2".我想知道的是如何根据我拥有的名称获取"data"和"data2"中的数据.
目前我正在使用:
var data =
from
tr in doc.DocumentNode.Descendants("tr")
from
td in tr.ChildNodes.Where(x => x.Attributes["class"].Value == "name")
where
td.InnerText == "Test1"
select tr;
Run Code Online (Sandbox Code Playgroud)
但是{"Object reference not set to an instance of an object."}
当我试着去看时,我得到 了data
我正在尝试实现离散傅立叶变换,但它不起作用.我可能在某个地方写过一个bug,但我还没有找到它.
基于以下公式:
该函数执行第一个循环,循环遍历X0 - Xn-1 ...
public Complex[] Transform(Complex[] data, bool reverse)
{
var transformed = new Complex[data.Length];
for(var i = 0; i < data.Length; i++)
{
//I create a method to calculate a single value
transformed[i] = TransformSingle(i, data, reverse);
}
return transformed;
}
Run Code Online (Sandbox Code Playgroud)
而实际计算,这可能是错误的地方.
private Complex TransformSingle(int k, Complex[] data, bool reverse)
{
var sign = reverse ? 1.0: -1.0;
var transformed = Complex.Zero;
var argument = sign*2.0*Math.PI*k/data.Length;
for(var i = 0; i < data.Length; i++)
{
transformed …
Run Code Online (Sandbox Code Playgroud) 目前我正在尝试更好地理解依赖注入,我正在使用asp.net MVC来处理它.你可能会看到我的一些其他相关问题;)
好吧,我将从一个示例控制器(示例Contacts Manager asp.net MVC应用程序)开始
public class ContactsController{
ContactsManagerDb _db;
public ContactsController(){
_db = ContactsManagerDb();
}
//...Actions here
}
Run Code Online (Sandbox Code Playgroud)
好吧,真棒,有效.我的操作都可以使用数据库进行CRUD操作.现在我已经决定要添加单元测试,并且我添加了另一个构造函数来模拟数据库
public class ContactsController{
IContactsManagerDb _db;
public ContactsController(){
_db = ContactsManagerDb();
}
public ContactsController(IContactsManagerDb db){
_db = db;
}
//...Actions here
}
Run Code Online (Sandbox Code Playgroud)
真棒,这是有用的,在我的单元测试中,我可以创建我自己的实现IContactsManagerDb
和单元测试我的控制器.
现在,人们通常做出以下决定(这里是我的实际问题),摆脱了空控制器,并使用依赖注入定义什么方案中使用.
所以使用StructureMap我添加了以下注入规则:
x.For<IContactsManagerDb>().Use<ContactsManagerDb>();
Run Code Online (Sandbox Code Playgroud)
在我的测试项目中,我正在使用不同的IContactsManagerDb
实现.
x.For<IContactsManagerDb>().Use<MyTestingContactsManagerDb>();
Run Code Online (Sandbox Code Playgroud)
但我的问题是,**我解决了什么问题,或者通过在这种特定情况下使用依赖注入简化了什么?
我现在没有看到任何实际用途,我理解如何但不是为什么?这有什么用?任何人都可以添加到这个项目,举个例子说明这个更实用和有用吗?
c# structuremap asp.net-mvc dependency-injection inversion-of-control
当我点击任何地方时,我想做点什么,除非我点击一个div而它是孩子们.这是我到目前为止所尝试的,但它不起作用(点击它的孩子仍然执行括号内的内容.
$('body').on('click', '* :not(#calculator)', function(e){
Run Code Online (Sandbox Code Playgroud)
我不能使用这样的东西:
$("body > *").not("body > #elementtokeep").remove();
Run Code Online (Sandbox Code Playgroud)
因为.not
函数不是我可以放在.on()
函数内部的东西.
我怎样才能做到这一点?
为什么c#不能做任何确切的操作.
Math.Pow(Math.Sqrt(2.0),2) == 2.0000000000000004
Run Code Online (Sandbox Code Playgroud)
我知道双打是如何工作的,我知道舍入误差来自哪里,我知道它几乎是正确的值,而且我知道你不能在有限的双精度中存储无限数.但是为什么没有一种方法可以让c#完全计算出来,而我的计算器可以做到.
编辑
这不是我的计算器,我只是举个例子:
干杯
我正在尝试编写一些类,我遇到了以下问题:
我正在尝试编写一个从两个接口实现某些功能的类
interface IA {
public void doSomething();
}
interface IB {
public void doSomethingToo();
}
Run Code Online (Sandbox Code Playgroud)
我有两个实现这些接口的类:
class FooA implements IA, IB{
}
class FooB implements IA, IB{
}
Run Code Online (Sandbox Code Playgroud)
我有办法可以做到这一点:
public <type> thisClassImGonnaUse = returnEitherFooAOrFooB();
thisClassImGonnaUse.doSomething();
thisClassImGonnaUse.doSomethingToo();
Run Code Online (Sandbox Code Playgroud) 对于一个MMORPG魔兽世界我试图写一个lib.该游戏中的钱存储为整数,而游戏货币不是整数,它基于金币,银币和铜币.
每100个铜是1个银,每100个银是1个金.
现在我需要将这样的整数转换为WoW Money格式:例如
123123应该返回:
23c 31s 12g
任何人都知道如何做到这一点
c# ×4
integer ×2
java ×2
.net ×1
asp.net-mvc ×1
c#-4.0 ×1
comparison ×1
fft ×1
html-parsing ×1
interface ×1
javascript ×1
jquery ×1
linq ×1
orm ×1
rounding ×1
structuremap ×1
unicode ×1