我一直在为在线商店系统设计数据库.通过阅读本网站上的一些帖子,我遇到的问题是,虽然我可以使用复合主键,但我会在下面解释一下,这是不是很糟糕的做法(根据我在这方面阅读的帖子)在stackoveflow上,很多人说这是一个不好的做法所以这就是我要问的原因.
我想在单独的表格中存储订单付款.原因在于,订单可以包含许多项目,这些项目以多对多关系的形式在单独的表格中处理.现在,如果我不使用复合主键作为我的付款表,我将失去我的独特性PaymentID:
[PaymentId] INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
[OrderId] INT NOT NULL PRIMARY KEY --Also a Foreign Key--
Run Code Online (Sandbox Code Playgroud)
现在,如果我只删除主键OrderId,我会在这里丢失我的一对一关系Many OrderIds can be associated to many PaymentIds,我不想要这个.
这就是为什么这里先前提出的问题已经(大多数时候)得出结论,复合键是一个坏主意.所以我想为自己澄清一下; 如果不好,那么最佳做法是什么?
看到我实际上必须实例化一个接口以在C#中使用Word Interoop后,我感到非常惊讶.
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
Run Code Online (Sandbox Code Playgroud)
该Microsoft.Office.Interop.Word.Application按什么它的XML文档说是一个接口:
怎么可能,视觉工作室把它与别的东西混淆了?或者是什么允许实例化这个接口?
我一直在尝试创建一个Windows手机,我想使用SQLite存储我的数据,并学习如何在Windows手机应用程序上使用它.为此我使用"SQLite.Net-PCL",但我一直收到文件未找到异常.这是我写的代码:
String ConnectionString = Path.Combine(ApplicationData.Current.LocalFolder.Path, Connection);
if (File.Exists(ConnectionString))
{
SQLite.Net.Platform.WindowsPhone8.SQLitePlatformWP8 e = new SQLite.Net.Platform.WindowsPhone8.SQLitePlatformWP8();
Con = new SQLiteConnection(e,ConnectionString);
}
else {
SQLite.Net.Platform.WindowsPhone8.SQLitePlatformWP8 e = new SQLite.Net.Platform.WindowsPhone8.SQLitePlatformWP8();
File.Create(ConnectionString);
Con = new SQLiteConnection(e, ConnectionString);
}
Run Code Online (Sandbox Code Playgroud)
我想也许我得到这个错误,因为我手动创建一个空文件,但如果这是问题,如果手机中没有数据库,我怎么能创建一个数据库?
我知道这个问题可能不适合堆栈溢出.我一直在寻找一个关于如何使用ajax帮助器的例子,但是大多数的人都只是通过帮助器,他们没有提供任何实际的例子.我已经知道如何使用javascript方式使用ajax,但只是想知道如何使用microsoft提供的ajax帮助程序.
我一直在尝试使用ActionFilter将TempData传递给动作:
filterContext.Controller.TempData.Add("Key","Value");
Run Code Online (Sandbox Code Playgroud)
但是,似乎没有TempData传递给操作,因为我不断收到Object not referenced to an instance of the object错误.
这是从ActionFilter将TempData传递给控制器的正确方法吗?如果没有,我该怎么做?
我创建了一个AjaxMethod(一种非常通用的方法,我正在做ASP.NET MVC)来获取用户点击的项目的ID,将它们添加到站点购物车中(通过将它们添加到cookie中).问题是我的Ajax方法有一个参数用作ID,所以我创建的按钮的id属性是实际的产品ID,它们的值是Add to Cart.我还创建了一个隐藏的提交按钮,其id 与Ajax方法中的参数名称相同,其值取决于所单击按钮的ID.
Click Button ID --Passed into--> Value of submit button
Run Code Online (Sandbox Code Playgroud)
我的问题是,我想知道有没有办法编写JavaScript/JQuery方法并在按钮中的OnClientCLick中使用它:获取调用者按钮的id,然后将其传递给提交按钮的值.
例如:
// I do not know the ID of the caller
// this method is used like: <button id="1111" OnClientClick="Test()"></button>
function Test() {
var ID = this.id // this did not work
$("#SubmitButton").val(ID)
$("SubmitButton").trigger("click")
}
Run Code Online (Sandbox Code Playgroud) 在C#中,当我们想要创建可以将lambda表达式作为参数的方法时,我们可以使用Action或Func<T>根据情况使用.新的Java 8增加了对lambdas的支持,但我找不到任何关于如何使用它的体面的例子.所以假设我想在Java中创建一个类似于这个C#的方法:
public static Boolean Check (String S, Func<String, Boolean> AnAction) {
return AnAction(S);
}
Run Code Online (Sandbox Code Playgroud)
那怎么用Java编写呢?
我知道IEnumerable是一个接口,我也知道当一个类实现一个接口时,它必须为该接口中的方法实现特定的主体.最近我一直在写一个程序,我觉得我需要实现IEnumerable上我的课之一,以允许它在foreach循环使用.我这样做后这样做:
class FData: IEnumerable<EClass> {
// Removed the irrelevant contents
public IEnumerator<EnumerableClass> GetEnumerator()
{
for (int i = 0; i < Emp_Id.Count; i++) {
yield return (new EnumerableClass { Emp_Id = Emp_Id[i], Salary = Salary[i] });
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
}
Run Code Online (Sandbox Code Playgroud)
我看到我的FData类可以像List一样使用,就好像它继承了所有可枚举的方法,如Select(),All(),Any()等.
我想知道如果在接口中没有定义这些方法的行为,这究竟是怎么发生的?
我是EF的新手,我只使用EF 6.当我使用它来访问我已经设计的数据库中的数据时,我没有看到任何允许我操作数据的方法.为了解决这个问题,我创建了一些用于添加,删除和更新数据的存储过程.我想知道我在做什么是在EF中操作数据的正确方法.如果不是正确的方法,我怎么能使用EF6的内置功能.MSDN说有一个添加对象但找不到它.
在C中,例如,任何时候我想处理字符串(C不支持),我也可以
char* String = (char*) malloc(25);
Run Code Online (Sandbox Code Playgroud)
要么
char String[25];
Run Code Online (Sandbox Code Playgroud)
我想知道这两种定义数组长度的方法之间的主要区别在于C(除此之外,第一个是指针,第二个不是).
我也想知道哪一个更安全.