小编JAX*_*JAX的帖子

复合主键:是好还是坏

我一直在为在线商店系统设计数据库.通过阅读本网站上的一些帖子,我遇到的问题是,虽然我可以使用复合主键,但我会在下面解释一下,这是不是很糟糕的做法(根据我在这方面阅读的帖子)在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,我不想要这个.

这就是为什么这里先前提出的问题已经(大多数时候)得出结论,复合键是一个坏主意.所以我想为自己澄清一下; 如果不好,那么最佳做法是什么?

sql database database-design relational-database

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

接口无法实例化,但这是一个例外

看到我实际上必须实例化一个接口以在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文档说是一个接口:

在此输入图像描述

怎么可能,视觉工作室把它与别的东西混淆了?或者是什么允许实例化这个接口?

c# com interface office-interop

13
推荐指数
1
解决办法
239
查看次数

SQLite.Net-PCL连接没有找到DB

我一直在尝试创建一个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)

我想也许我得到这个错误,因为我手动创建一个空文件,但如果这是问题,如果手机中没有数据库,我怎么能创建一个数据库?

c# sqlite windows-phone-8

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

ASP.net MVC中的Ajax帮助器

我知道这个问题可能不适合堆栈溢出.我一直在寻找一个关于如何使用ajax帮助器的例子,但是大多数的人都只是通过帮助器,他们没有提供任何实际的例子.我已经知道如何使用javascript方式使用ajax,但只是想知道如何使用microsoft提供的ajax帮助程序.

ajax asp.net-mvc razor

4
推荐指数
1
解决办法
8020
查看次数

将TempData从动作过滤器传递给操作

我一直在尝试使用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传递给控制器​​的正确方法吗?如果没有,我该怎么做?

asp.net-mvc

3
推荐指数
1
解决办法
4217
查看次数

在JavaScript/JQuery中获取调用者的ID

我创建了一个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)

javascript jquery

3
推荐指数
1
解决办法
5838
查看次数

在Java 8中支持lambda表达式

在C#中,当我们想要创建可以将lambda表达式作为参数的方法时,我们可以使用ActionFunc<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编写呢?

java lambda java-8

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

实现IEnumberable接口

我知道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()等.

我想知道如果在接口中没有定义这些方法的行为,这究竟是怎么发生的?

c# interface

0
推荐指数
1
解决办法
82
查看次数

实体框架6:数据操作

我是EF的新手,我只使用EF 6.当我使用它来访问我已经设计的数据库中的数据时,我没有看到任何允许我操作数据的方法.为了解决这个问题,我创建了一些用于添加,删除和更新数据的存储过程.我想知道我在做什么是在EF中操作数据的正确方法.如果不是正确的方法,我怎么能使用EF6的内置功能.MSDN说有一个添加对象但找不到它.

entity-framework

0
推荐指数
1
解决办法
552
查看次数

内存分配与数组大小定义

在C中,例如,任何时候我想处理字符串(C不支持),我也可以

 char* String = (char*) malloc(25);
Run Code Online (Sandbox Code Playgroud)

要么

 char String[25];
Run Code Online (Sandbox Code Playgroud)

我想知道这两种定义数组长度的方法之间的主要区别在于C(除此之外,第一个是指针,第二个不是).

我也想知道哪一个更安全.

c

0
推荐指数
1
解决办法
46
查看次数