Dúvida MVC e SQL

Kevin04PT

Power Member
Boas,

Estou a desenvolver uma base de dados para utilizar juntamente com uma aplicação em MVC.

No entanto tenho uma dúvida na implementação da base de dados. Estou a usar o SQL Management Studio e a minha ideia era ter o conceito de herança, da mesma forma que na programação orientada por objetos. Será esta a melhor forma de simular a herança, em SQL, ou existe uma melhor forma de fazer isto?

print.jpg


Desta forma, se depois em MVC criar uma PerguntaLivre não consigo aceder aos atributos da classe mãe Pergunta sem antes criar uma instância da classe mãe. Claro que depois posso ligar ambos utilizando um ID comum...


A segunda dúvida, relacionada com MVC, é: Como é que posso modificar a atribuição por defeito de HashSet para List a todas as ICollection de tabelas externas que as tabelas possuem. Precisava de manter a ordem de inserção, coisa que a HashSet não permite. Isto, claro, utilizando a Entity Framework (com ligação à base de dados SQL).

Obrigado.
 
Aconselho-te a utilizares Entity Framework, com Code First.

Em cada objecto, usa navigation properties para chegares aos objectos filhos e nos objectos filhos usa foreign keys para os pais (Nos filhos inclui o Id único do pai e o próprio pai). Assim podes navegar facilmente na hierarquia de cada objecto.
Não programes SQL, isso já não se usa/deveria usar, principalmente se pretendes utilizar produtos .Net. ( Pelo que descreves, parece-me que te faltam claramente as navigation properties nas entidades filhas)

Posteriormente nas querys que faças aos pais, usa includes para as entidades filhas e não join's com as mesmas.

A 2ª não percebi, lido pouco com MVC.
 
Estive a analisar o que ambos me disseram e acho que vou apenas criar as tabelas na base de dados SQL, mas não vou liga-las. Quando crio a entity framework no visual studio trato de criar lá a herança, e assim pelos vistos fica a funcionar.

Continuo com a dúvida de como converter as HashSet para List, na entity framework.
 
Surgiu-me uma nova dúvida:

Eu tenho o seguinte scripts definido dentro de uma partial view:

<script type="text/javascript">
function confirmDelete() {
var r = confirm("Tem a certeza que pretende eliminar este questionário?");
if (r == true) {
$.ajax({
url: '@Url.Action("Apagar", "Questionarios_Cliente", new { id = Model.id })',
success: function (objServerResponse) {
var responseText = objServerResponse.responseText;
var scripts, scriptsFinder = /<script[^>]*>([\s\S]+)<\/script>/gi;
while (scripts = scriptsFinder.exec(responseText)) {
eval.call(window, scripts[1]);
}
location.reload();
}
});
}
else {
return;
}
}
</script>

Quando tenho várias instâncias desta Partial View na mesma View, quando executo o script ele está a passar o ID errado, isto é, como se estivesse a executar o script na Partial View errada. Isto pode derivar do quê?
 
Back
Topo