- Co je to ORM?
- Používá se ORM pro relační databáze?
- Používá se ORM pro objektové databáze?
- Co se v ORM na straně C# (.NETu) mapuje v databázi na tabulky?
- Mějme business objekt v C# a nějakou jeho vlastnost. Na co se v ORM na straně databáze taková vlastnost mapuje?
- Co je to skalární vlastnost?
- Jaký atribut (anotaci) používá Entity Framework na straně C# na označení faktu, že třída Car mapuje na tabulku TB_CAR v databázi?"
- K čemu v Entity Frameworku slouží atribut (anotace)
[ForeignKey("...")]
?
- Proč má mít v databázi každá tabulka primární klíč?
- Dejme tomu, že mezi business objekty "položka faktury" (InvoiceItem) a "faktura" (Invoice) je vztah many-to-one. Když na databázové straně budu zakládat tabulky TB_INVOICE_ITEM a TB_INVOICE (včetně primárních a cizích klíčů), na které mapují business objekty InvoiceItem a Invoice, kterou z těch tabulek musím založit jako první?
-
Proč následující kód (když ho spustím proti instanci MS SQL Serveru, ve které mám potřebnou databázi), proč tento kód vyhodí chybu? A kde k chybě dojde?
CREATE TABLE TB_CAR
(
ID INT IDENTITY(1,1) NOT NULL,
BRAND NVARCHAR(30) NOT NULL,
MODEL NVARCHAR(50) NOT NULL,
NOTE NVARCHAR(500) NULL,
CONSTRAINT PK_TB_CAR PRIMARY KEY ( ID )
);
go
INSERT INTO
TB_CAR
(
BRAND,
MODEL,
NOTE
)
VALUES
(
'Skoda'
NULL,
NULL
)
;
-
Proč v následujícím SQL skriptu nevkládáme hodnotu do sloupce ID?
CREATE TABLE TB_CAR
(
ID INT IDENTITY(1,1) NOT NULL,
BRAND NVARCHAR(30) NOT NULL,
MODEL NVARCHAR(50) NOT NULL,
NOTE NVARCHAR(500) NULL,
CONSTRAINT PK_TB_CAR PRIMARY KEY ( ID )
);
go
INSERT INTO
TB_CAR
(
-- ID,
BRAND,
MODEL,
NOTE
)
VALUES
(
-- 1,
'Mercedes'
'S',
'Super fáro!'
)
;
-
Mějme následující business objekty a k nim tabulky v databázi:
public class Animal
{
public int ID { get; set; }
public string Name { get; set; }
public int YearBorn { get; set; }
public int GroupID ( get; set; )
public Group Group { get; set; }
}
public class Group
{
public int ID { get; set; }
public string GroupName { get; set; }
public string Description { get; set; }
}
CREATE TABLE TB_ANIMAL
(
ID INT IDENTITY(1,1) NOT NULL,
NAME NVARCHAR(50) NOT NULL,
INT YEAR_BORN NOT NULL,
INT GROUP_ID NOT NULL,
CONSTRAINT PK_TB_ANIMAL PRIMARY KEY (ID),
CONSTRAINT FK_TB_ANIMAL_TB_GROUP FOREIGN KEY (GROUP_ID) REFERENCES TB_GROUP (ID)
)
CREATE TABLE TB_GROUP
(
ID INT IDENTITY(1,1) NOT NULL,
GROUP_NAME NVARCHAR(50) NOT NULL,
DESCRIPTION NVARCHAR(200) NULL,
CONSTRAINT PK_TB_GROUP PRIMARY KEY (ID)
)
Na jaký sloupec v tabulce TB_ANIMAL mapuje navigační vlastnost Group ve třídě Animal?