我正在使用Microsoft SQL Server Management Studio,在创建联结表时,我应该为联结表创建一个ID列,如果是这样,我还应该将它作为主键和标识列吗?或者只是为我加入多对多关系的表保留2列?
例如,如果这将是多对多表:
MOVIE
Movie_ID
Name
etc...
CATEGORY
Category_ID
Name
etc...
Run Code Online (Sandbox Code Playgroud)
我应该建立联结表:
MOVIE_CATEGORY_JUNCTION
Movie_ID
Category_ID
Movie_Category_Junction_ID
Run Code Online (Sandbox Code Playgroud)
[并制作Movie_Category_Junction_ID我的主键并将其用作标识栏]?
要么:
MOVIE_CATEGORY_JUNCTION
Movie_ID
Category_ID
Run Code Online (Sandbox Code Playgroud)
[并且只留下没有主键或身份表的那个]?
根据我对接口的理解,为了使用它们,你必须通过在冒号后面添加接口的名称来声明一个类正在实现它,然后实现这些方法.
我目前正在学习枚举器,IEnumerable等等,这让我很困惑.这是我的意思的一个例子:
static IEnumerable<int> Fibs(int fibCount)
{
for (int i = 0, prevFib = 1, curFib = 1; i < fibCount; i++) {
yield return prevFib;
int newFib = prevFib + curFib;
prevFib = curFib;
curFib = newFib;
}
}
Run Code Online (Sandbox Code Playgroud)
IEnumerable似乎是一个普通的接口,我甚至检查了方法定义,这就是它的样子.
我怎么可能在方法定义中使用接口作为类型/返回类型,何时/如何知道我应该使用某些接口作为此示例中的类型?
编辑:我真的怀疑它与yield关键字有什么关系,因为很多接口都以这种方式用作属性,例如在模型中的MVC中,并像它一样传递给Views.例:
public IEnumerable<Category> Categories {get;set;}
Run Code Online (Sandbox Code Playgroud) 该文件大约是24mb,并且它保存在DataBase中,所以我将它转换为位数组然后,经过多次建议后,我使用了bitconverter.tosingle(,),这给了我不好的结果,这是我的代码:
byte[] imgData = prod.ImageData;
float myFloat = BitConverter.ToSingle(imgData, 0);
float mb = (myFloat / 1024f) / 1024f;
Run Code Online (Sandbox Code Playgroud)
当我调试时,我得到这些结果:
字节[24786273]
myFloat = 12564.0361
mb = 0.0119819986
奇怪的是,数组的大小与文件的大小完全相同.如何正确地将其转换为浮动然后显示为mb?
编辑:我尝试将myFloat设置为imgData.Length,然后大小是正确的,但是这是一个正确的方法,并且它会在未来导致更大的值的问题?
我正在阅读我关于Objective-C [Objective-C第4版编程]的第一本书,我正在阅读本书的中途,但有一点让我感到困惑的是,它没有解释我们为什么要初始化对象.
我尝试使用with对象,例如分配内存但不启动它们,程序中的所有内容都和以前一样.
我也很欣赏一些解释这个问题的例子.
c# ×1
c#-4.0 ×1
ienumerable ×1
init ×1
interface ×1
many-to-many ×1
object ×1
objective-c ×1
sql ×1
sql-server ×1