iT邦幫忙

0

.net core 2.1 EF 里如何查询数据库,只显示表中的选定部分字段值

  • 分享至 

  • xImage

就是如SQL语句的:select name years from User orderby ID desc
的效果

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
暐翰
iT邦大師 1 級 ‧ 2019-01-07 00:26:25

使用LINQ SQL就可以解決


Test DDL:

create table [User] (ID int,name nvarchar(15),years int)

LINQ Code:

	var result = from s in Users
				orderby s.ID
				 select new {s.Name,s.years};

2019-01-07.00.37.25-image.png

完整Code:

// @nuget: EntityFramework
// @nuget: Z.EntityFramework.Extensions

using System;
using System.Data.Entity;
using System.Linq;
using System.Collections.Generic;
using System.Linq.Dynamic;
					
public class Program
{
	public static void Main()
	{
		InsertData();
		
		using (var context = new EntityContext())
		{
			var result = from s in context.Users
				orderby s.ID
				 select new {s.name,s.years};
		};
	}
	
	public static void InsertData()
	{
		using (var context = new EntityContext())
		{
			context.BulkInsert(
				new List<User>()
				{
					new User() { ID=1,name ="ITMan1",years=1},
					new User() { ID=2,name ="ITMan2",years=2},
					new User() { ID=3,name ="ITMan3",years=3}
				}
			);
		}
	}
	
	public class EntityContext : DbContext
	{
		public EntityContext() : base(FiddleHelper.GetConnectionStringSqlServer())
		{

		}
		
		public DbSet<User> Users { get; set; }
	}
	
	
	public class User
	{
		public int ID { get; set; }
		public string name { get; set; }
		public int years { get; set; }
	}
}

線上測試連結:EF - EF 里如何查询数据库,只显示表中的选定部分字段值 | C# Online Compiler | .NET Fiddle

panmike iT邦新手 5 級 ‧ 2019-01-07 17:03:02 檢舉

你好!我现在是用ORM,我是这样写的:
dbContext.Users.SingleOrDefault(t => t.Name == Name && t.Pwd == Pwd);
像这样,我不需要输出密码这一项,我应该怎么写呢?

暐翰 iT邦大師 1 級 ‧ 2019-01-07 17:13:46 檢舉

前面select指定屬性,就不會包含密碼

dbContext.Users.Where(t => t.Name == Name && t.Pwd == Pwd)
    .Select(s=>s.Name).SingleOrDefault()	
;

2019-01-07.17.13.43-image.png

我要發表回答

立即登入回答