Vous êtes sur la page 1sur 26

Une agence de voyage souhaite informatiser la gestion de réservation de ses hôtels via une

application web, en s’appuyant sur le diagramme de classes ci-dessous :

Page 1 sur 26
A. QUESTION 1

Lesquelles des approches de développement suivantes sont prises en charge par Entity
Framework
A. Code First
B. Database First
C. Model First
D. Entity First
E. Tout ce qui précède

Page 2 sur 26
B. QUESTION 2

Selon les conventions par défaut IdChambre est une clé primaire de la classe Chambre
A. Vrai
B. Faux

Page 3 sur 26
C. QUESTION 3

Peut-on configurer une clé primaire d’une classe avec Entity Framework Code First

D. Non, les seuls noms possibles pour une clé primaire sont Id, ou NomDeLaClasseId
E. Oui, avec l'annotation [RequiredKey]
F. Oui, avec l'annotation [Key]

Page 4 sur 26
G. QUESTION 4

En utilisant les annotations, comment configurer le champs Surface de la classe chambre


pour que sa valeur soit défini entre 50 et 150
A. [ Range(50,150)]
B. [MinLength(50), Maxlength(150)]
C. [MinSize(50), MaxSize(150)]

Page 5 sur 26
H. QUESTION 5

En utilisant les annotations, comment configurer le champs Model de la classe chambre pour
qu’il soit affiché à l’utilisateur «Style»
A. [Display(name=”Style ”)]

B. [DisplayAs(”Style ”)]

C. [Display(”Style ”)]

Page 6 sur 26
I. QUESTION 6

Cocher la bonne configuration de la relation Chambre_Hotel

a-
b-

Page 7 sur 26
c-

Page 8 sur 26
J. QUESTION 7

On souhaite changer le nom de la table Hôtel dans la base de données à Auberge. Choisir la
configuration adéquate pour répondre à ce besoin.

Public class HotelConfiguration


:EntityTypeConfiguration<Hotel>
{
public HotelConfiguration()
{

Entity<Hotel>(name=”Auberge”)
B

Public class HotelConfiguration


:EntityTypeConfiguration<Hotel>
{
public HotelConfiguration()
{
c
RenameTable("Auberge");

Page 9 sur 26
K. QUESTION 8
On souhaite implémenter le patron de conception Repository, choisir la bonne réponse de la
déclaration de l’interface IRepository

A ☐

B ☐

Page 10 sur 26
L. QUESTION 9

Le patron de conception unité de travail (unit of work) permet de


A. Faire une instance du contexte seulement
B. Sauvegarder les données dans la base uniquement
C. Supprime les données non managées
D. Aucune de ces réponses

Page 11 sur 26
M. QUESTION 10

Comment forcer l’exécution du garbage collector


A. En utilisant la méthode GC.Run()
B. En utilisant la méthode GC.Collect()
C. En utilisant la méthode GC.Collection()
D. En utilisant la méthode GC.SuppressFinalize()

Page 12 sur 26
N. QUESTION 11

Comment modifier l'état (state) de l'entité à l'aide de DBContext

A. myDbcontext.Entry(studentEntity).state = System.Data.Entity.EntityState.Modified
B. myDbcontext.Add(studentEntity).state = System.Data.Entity.EntityState.Modified
C. myDbcontext.Set(studentEntity).state = System.Data.Entity.EntityState.Modified
D. myDbcontext.Entity(studentEntity).ChangeState(System.Data.Entity.EntityState.
Modified)

Page 13 sur 26
O. QUESTION 12

Afin de générer la base de données nommée ExamenBlancBD, on a ajouté la balise


<ConnectionString> de la chaîne de connexion dans le fichier Web.Config. Choisir le bout
de code correcte pour répondre à ce besoin.

<connectionStrings>

<add name="Alias"

connectionString="Data Source=(localdb)\MSSQLLocalDB;

Initial Catalog=ExamenBlancBD;

Integrated Security=True"

providerName="System.Data.SqlClient" />

</connectionStrings>

<connectionStrings>

<add name="Alias"

connectionString="Data Source=(localdb)\MSSQLLocalDB;

Initial Catalog=System.Data.SqlClient;

Integrated Security=True"

providerName= “ExamenBlancBD”/>

</connectionStrings>

<connectionStrings>

<add name=“ExamenBlancBD”

Page 14 sur 26
connectionString="Data Source=(localdb)\MSSQLLocalDB;

Initial Catalog=System.Data.SqlClient;

Integrated Security=True"

providerName= "Alias"/>

</connectionStrings>

Page 15 sur 26
P. QUESTION 13

Comment spécifier le nom d’une chaîne de connexion dans la classe ExamenContext


A

public class ExamenContext :DbContext

public ExamenContext():base("name = Alias")

public class ExamenContext :DbContext

public ExamenContext():base(name = "Alias")

public class ExamenContext :DbContext

public ExamenContext():base("Alias")

Page 16 sur 26
Q. QUESTION 14

Comment mettre à jour le Context pour faire appel à la classe de configuration


HotelConfiguration
A
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Add(new HotelConfiguration());
}

B
protected override void OnModelCreating()
{
Configurations.Add(new HotelConfiguration());
}

C
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new HotelConfiguration());
}

Page 17 sur 26
R. QUESTION 15

Choisir parmi ces 3 implémentations, celle ou celles qui permettent de définir (IDChambre,
ClientKey et Date) comme clé primaire composée de la table « Reservations »

a-

[Key, Column(Order = 0)]

public DateTime Date { get; set; }

public double Prix { get; set; }

public double Duree { get; set; }

[Key, Column(Order = 1)]

public Client Client { get; set; }

[Key, Column(Order = 2)]

Public Chambre Chambre { get; set; }

b-

[Key, Column(Order = 0)]

public DateTime Date { get; set; }

public double Prix { get; set; }

public double Duree { get; set; }

public Client Client { get; set; }

[Key, Column(Order = 1)]

[ForeignKey("Client")]

public string ClientKey {get; set;}

Public Chambre Chambre { get; set; }

[Key, Column(Order = 2)]

[ForeignKey("Chambre")]

Page 18 sur 26
public int IDChambre { get; set; }

c-

[Key, Column(Order = 0)]

public DateTime Date { get; set; }

public double Prix { get; set; }

public double Duree { get; set; }

public Client Client { get; set; }

[Key, Column(Order = 1)]

public string ClientKey {get; set;}

Public Chambre Chambre { get; set; }

[Key, Column(Order = 2)]

public int IDChambre { get; set; }

Page 19 sur 26
S. QUESTION 16

Quelle est la définition correcte de la classe “ReservationService” qui hérite de la classe


“Service” générique.

a-

public class ReservationService : Service<Reservation>, IReservationService

{ private IUnitOfWork uow = new UnitOfWork();

public ReservationService() : base(uow)

b-

public class ReservationService : IReservationService, Service<Reservation>

{ private IDatabaseFactory dbf = new DatabaseFactory();

private IUnitOfWork uow = new UnitOfWork(dbf);

public ReservationService() : base(uow)

c-

Page 20 sur 26
public class ReservationService : Service<Reservation>, IReservationService

private static IDatabaseFactory dbf = new DatabaseFactory();

private static IUnitOfWork uow = new UnitOfWork(dbf);

public ReservationService() : base(uow)

Page 21 sur 26
T. QUESTION 17

On veut récupérer dans la classe “ChambreService” le Client qui a occupé une Chambre
passée en paramètre dans une date donnée (passée également en paramètre). Quelle est la
méthode qui assure ce besoin.

a-

public Client GetClientByDate(Chambre ch, DateTime d)

{ return uow.getRepository<Reservation>()

.GetMany(r => r.IdChambre==ch.IdChambre && DateTime. Compare(r.Date,d)==0)

.Select(r => r.Client);

b-

public Client GetClientByDate(Chambre ch, DateTime d)

{ return GetMany(r => r.IdChambre==ch.IdChambre && DateTime.Compare(r.Date,d)==0)

.Select(r => r.Client);

c-

public Client GetClientByDate(Chambre ch, DateTime d)

return GetMany(DateTime.Compare(r.Date,d)==0)

.Select(c => c.Client);

Page 22 sur 26
Page 23 sur 26
U. QUESTION 18

On se propose de créer le contrôleur “HotelController” pour gérer l’entité “Hotel”.

Toutes les actions du contrôleur doivent représenter deux méthodes: une méthode de type
GET et une autre de type POST.

A- Vrai B- Faux

Page 24 sur 26
V. QUESTION 19

On suppose que la propriété “Classification” de l’entité “Hotel” est sélectionnée à partir


d’une liste de données récupérées à partir de la base. La partie suivante du code permet le
chargement et la visualisation de la liste en question:

//Vue

//Contrôleur

A- Vrai B- Faux

Page 25 sur 26
W. QUESTION 20

Cette méthode du contrôleur “HotelController” permet d’ajouter un enregistrement de type


“Hotel” dans la base.

A- Vrai B- Faux

Manque le [HTTPpost]

Page 26 sur 26