LINQ to SQL e projecção de dados, MVC
-
06-07-2019 - |
Pergunta
HI Eu tenho uma tabela com alguns alguns valores (IDS), e, claro, quando eu conseguir o resultado que eu tenho apenas as IDs int, mas eu quero colocá-lo mais fácil de usar, por exemplo, quando o seu número 1, i quer colocar a string "avaible", quando o seu 2 "não avaible", im em um N tiers meio ambiente e eu preciso para obter este feito no modelo, o que é a melhor maneira de conseguir isso, eu tenho que declarar outra classe de projeto as cordas, ou devo usar algo como um dicionário, Key -.> Valor
Agora eu só tenho esse
return from t in db.products where t.productID==productID select t;
Solução
Se você estiver usando LINQ to SQL que você precisa outra tabela para conter o status do produto:
Table Name: Product Status
Fields: ProductStatusID int Indentity Primary Key
ProductStatus nvarchar(50)
Adicionar um campo para os seus produtos Tabela:
Field to Add: ProductStatusID int
Adicionar alguns estados para sua nova tabela, e definir o ProductStatusID de cada produto para um id estatuto adequado.
Adicione uma restrição que liga os dois campos ProductStatusID juntos. A maneira mais fácil fazer isso é criar um diagrama no SQL Server Management Studio Express, arraste ambas as tabelas no diagrama, e, em seguida, arraste o campo ProductStatusID da tabela ProductStatus para a tabela Produtos, e clique em OK na caixa de diálogo que se abre.
Reconstruir suas LINQ to SQL classes de dados. Para fazer isso, excluir e recriar o arquivo DBML, e arrastando suas tabelas para o designer novamente.
Quando você obter um objeto de produtos (p) do seu objeto DataContext, agora você deve ver o seguinte:
p.ProductStatus <-- The text description of the product's status.
LINQ to SQL vai chegar em sua mesa ProductStatus, e pesquisar a descrição estatuto adequado.