Tag: C#的

EF codefirst:我应该初始化导航属性吗?

我曾经看过一些书(例如编程entity framework代码第一个Julia Lerman )定义了他们的领域类(POCO),没有像以下导航属性的初始化: public class User { public int Id { get; set; } public string UserName { get; set; } public virtual ICollection<Address> Address { get; set; } public virtual License License { get; set; } } 一些其他书籍或工具(例如Entity Framework Power Tools )在生成POCO时会初始化该类的导航属性,如: public class User { public User() { this.Addresses = new IList<Address>(); […]

LINQ to Entities不能识别方法System.String ToString()方法,并且这个方法不能被转换成存储expression式

我正在从一个MySQL服务器迁移一些东西到一个SQL服务器,但我不知道如何使这个代码工作: using (var context = new Context()) { … foreach (var item in collection) { IQueryable<entity> pages = from p in context.pages where p.Serial == item.Key.ToString() select p; foreach (var page in pages) { DataManager.AddPageToDocument(page, item.Value); } } Console.WriteLine("Done!"); Console.Read(); } 当它进入第二个foreach (var page in pages)它会抛出一个exception说: LINQ to Entities不能识别方法System.String ToString()方法,并且此方法不能被转换成存储expression式。 任何人都知道为什么会这样

将数组写入Excel范围

我正在尝试使用以下代码将对象数组中的数据写入Excel中的某个范围,其中objData只是一个string数组: private object m = System.Type.Missing; object[] objData = getDataIWantToWrite(); Range rn_Temp; rn_Temp = (Range)XlApp.get_Range(RangeName, m); rn_Temp = rn_Temp.get_Resize(objData.GetUpperBound(), 1); rn_Temp.value2 = objData; 这非常接近的工作,问题是范围被填充,但每个单元格获取objData中的第一个项目的objData 。 反向工作,即 private object m = System.Type.Missing; object[] objData = new object[x,y] Range rn_Temp; rn_Temp = (Range)XlApp.get_Range(RangeName, m); rn_Temp = rn_Temp.get_Resize(objData.GetUpperBound(), 1); objData = (object[])rn_Temp.value2; 将返回一个包含工作表中所有值的数组,所以我不确定为什么阅读和分配的工作方式不同。 有没有人做过这个成功? 我目前正在编写单元格的数组,但它需要处理大量(> 50,000)的行,这是非常耗时的。

获取variables或参数的名称

可能重复: 在C#中查找传递给函数的variables名 我想获得一个variables或参数的名称: 例如,如果我有: var myInput = "input"; var nameOfVar = GETNAME(myInput); // ==> nameOfVar should be = myInput void testName([Type?] myInput) { var nameOfParam = GETNAME(myInput); // ==> nameOfParam should be = myInput } 我怎样才能在C#中做到这一点?

在指针声明中放置星号

我最近决定,我不得不最终学习C / C ++,有一点我不太了解指针,或者更确切地说,他们的定义。 这些例子如何: int* test; int *test; int * test; int* test,test2; int *test,test2; int * test,test2; 现在,据我了解,前三种情况都是一样的:testing不是一个int,而是一个指针。 第二套例子有点棘手。 在情况4中,test和test2都是指向int的指针,而在情况5中,只有test是一个指针,而test2是一个“真实的”int。 那么情况6呢? 与案例5一样?

initializer_list和移动语义

我允许将元素移出std::initializer_list<T>吗? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } 由于std::intializer_list<T>需要特殊的编译器注意,并没有像C ++标准库的普通容器那样的价值语义,所以我宁愿安全,也不要抱歉。

如何在进程fork()之间共享内存?

在fork子程序中,如果我们修改一个全局variables,它将不会在主程序中被修改。 有没有办法改变子分叉的全局variables? #include <stdio.h> #include <stdlib.h> #include <unistd.h> int glob_var; main (int ac, char **av) { int pid; glob_var = 1; if ((pid = fork()) == 0) { /* child */ glob_var = 5; } else { /* Error */ perror ("fork"); exit (1); } int status; while (wait(&status) != pid) { } printf("%d\n",glob_var); // […]

不同于linq的类的属性

我有一个集合: List<Car> cars = new List<Car>(); 汽车是由他们的财产CarCode唯一标识。 我有三辆车在收集,和两个相同的CarCodes。 我如何使用LINQ将这个集合转换成独特的CarCodes的汽车?

常规string和逐字string有什么区别?

我有一个Resharper的试用版本,它总是build议我将常规string切换为逐字string。 有什么不同?

零长度的数组

我正在重构一些旧的代码,并发现几个包含零长度数组的结构(见下文)。 警告当然是压制杂注,但是我没有通过包含这种结构的“新”结构来创build(错误2233)。 数组'byData'用作指针,但是为什么不使用指针呢? 或长度为1的数组? 当然,没有任何意见可以让我享受这个过程…任何原因使用这样的事情? 任何意见重构这些? struct someData { int nData; BYTE byData[0]; } 注意它是C ++,Windows XP,VS 2003